Files
Minecraft-Modern-Theme/Minecraft-Modern-Theme/style.css
2026-03-19 23:51:52 +01:00

4264 lines
130 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*
Theme Name: Minecraft Modern Theme
Theme URI: https://git.viper.ipv64.net/M_Viper/Minecraft-Modern-Theme
Author: M_Viper
Description: Ein modernes Gaming-Theme mit konfigurierbarem Header-Slider.
Author URI: https://M-Viper.de
Version: 2.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: minecraft-modern-theme
*/
@import url('https://fonts.googleapis.com/css2?family=Raleway:wght@400;600;700&display=swap');
/* === DARK / LIGHT MODE VARIABLEN === */
:root {
--bg-color: #14151a;
--surface-color: #1e2029;
--card-bg: #252830;
--text-color: #e4e4e4;
--text-muted: #a0a0a0;
--primary-accent: #00d4ff;
--header-bg: rgba(20, 21, 26, 0.8);
--header-scrolled-bg: #14151a;
--border-color: #333;
--header-height: 500px;
}
html.light-mode {
--bg-color: #f8f9fa;
--surface-color: #ffffff;
--card-bg: #ffffff;
--text-color: #212529;
--text-muted: #6c757d;
--header-bg: rgba(255, 255, 255, 0.95);
--header-scrolled-bg: #ffffff;
--border-color: #dee2e6;
}
/* Sanfte Übergänge */
body, .site-header, .site-footer, .post, .faq-item, .theme-toggle {
transition: background-color 0.4s ease, color 0.4s ease, border-color 0.4s ease;
}
/* === ALLGEMEINE STYLES & STICKY FOOTER SETUP === */
body {
font-family: 'Raleway', sans-serif;
background-color: var(--bg-color);
color: var(--text-color);
margin: 0;
line-height: 1.7;
}
/* WICHTIG: Dies sind die Regeln, die den Footer immer unten halten */
html { height: 100%; }
body {
display: flex;
flex-direction: column;
min-height: 100vh;
}
.site-main {
flex: 1; /* Sorgt dafür, dass der Hauptinhalt den verfügbaren Platz ausfüllt */
}
h1, h2, h3, h4, h5, h6 { font-weight: 700; line-height: 1.3; color: var(--text-color); }
a { color: var(--primary-accent); text-decoration: none; font-weight: 600; transition: color 0.2s ease; }
a:hover { color: #fff; }
.container { max-width: 1200px; margin: 0 auto; padding: 0 20px; }
/* === HEADER & NAVIGATION === */
.site-header {
background-color: var(--header-bg);
backdrop-filter: blur(10px);
padding: 30px 0; /* FIX: Mehr vertikaler Platz im Header */
position: sticky;
top: 0;
z-index: 1000;
transition: background-color 0.3s ease, box-shadow 0.3s ease;
}
.site-header.scrolled {
background-color: var(--header-scrolled-bg);
box-shadow: 0 2px 15px rgba(0,0,0,0.3);
}
.header-main {
display: flex;
align-items: center;
justify-content: space-between; /* FIX: Logo Links, Menü Mitte, Info Rechts */
gap: 40px; /* Flexiblerer Abstand */
}
/* WICHTIG: Typo im Header.html korrigieren!
HTML: <div class="site-branding">
CSS: .site-branding
Sie müssen die 'g' im HTML oder CSS angleichen, sonst ist das Layout kaputt.
*/
.site-branding {
display: flex;
align-items: center;
}
.custom-logo-link img, .custom-logo {
max-height: 60px;
margin-right: 15px;
width: auto;
}
.site-branding h1, .site-title {
margin: 0;
font-size: 24px;
font-weight: 700;
}
.site-branding a {
color: var(--text-color);
text-decoration: none;
}
/* =================================================================== */
/* === NEUE DROPDOWN NAVIGATION ======================================= */
/* =================================================================== */
#site-navigation {
position: relative;
flex-grow: 1; /* FIX: Navigation nimmt den gesamten Platz in der Mitte ein */
display: flex;
justify-content: center; /* Zentriert das Menü innerhalb seines Raums */
align-items: center;
padding: 0 30px; /* Mindestabstand zu Logo und Socials */
}
/* Hauptliste (Top Level) */
.primary-menu {
display: flex;
align-items: center;
list-style: none;
margin: 0;
padding: 0;
gap: 20px; /* Abstand zwischen Menüpunkten horizontal */
}
/* Menüpunkte */
.menu-item {
position: relative;
}
/* Links in der Navigation */
.main-navigation a {
display: inline-block;
font-size: 15px;
font-weight: 600;
color: var(--text-muted);
text-decoration: none;
padding: 20px 0; /* FIX: Mehr vertikaler Platz (Oben/Unten) ohne horizontales Padding */
transition: color 0.3s ease;
position: relative;
}
.main-navigation a:hover {
color: var(--primary-accent);
}
/* Pfeil-Icon für Untermenü-Punkte (Desktop) */
.menu-item-has-children > a::after {
content: '\f107'; /* FontAwesome Down Arrow */
font-family: 'Font Awesome 6 Free';
font-weight: 900;
margin-left: 8px;
font-size: 0.8em;
display: inline-block;
transition: transform 0.3s ease;
}
/* Pfeil drehen beim Hover */
.menu-item-has-children:hover > a::after {
transform: rotate(180deg);
}
/* --- DROPDOWNS (Untermenüs Level 1) --- */
.sub-menu {
position: absolute;
top: 100%; /* Direkt unter dem Elternpunkt */
left: 0;
background-color: var(--surface-color);
border:1px solid var(--border-color);
border-top: 3px solid var(--primary-accent);
min-width: 240px;
list-style: none;
padding: 10px 0;
margin: 0;
z-index: 9999;
/* Animationseinstellungen */
opacity: 0;
visibility: hidden;
transform: translateY(20px);
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
box-shadow: 0 10px 30px rgba(0,0,0,0.5);
border-radius: 0 0 8px 8px;
}
/* Dropdown anzeigen bei Hover */
.menu-item-has-children:hover > .sub-menu {
opacity: 1;
visibility: visible;
transform: translateY(10px);
}
/* Links im Dropdown */
.sub-menu li a {
padding: 12px 25px;
color: var(--text-color);
border-bottom: 1px solid rgba(255,255,255,0.05);
font-size: 14px;
white-space: nowrap;
/* FIX: Vollständige Hintergrund-Markierung */
display: block;
width: 100%;
box-sizing: border-box; /* Padding wird zur Breite hinzugezählt */
transition: background-color 0.2s ease, color 0.2s ease, padding-left 0.2s ease;
}
.sub-menu li:last-child a {
border-bottom: none;
}
.sub-menu li a:hover {
background-color: rgba(0, 212, 255, 0.1);
color: var(--primary-accent);
padding-left: 30px; /* Schiebe-Effekt */
}
/* --- DROPDOWN LEVEL 2 (falls vorhanden) --- */
.sub-menu .sub-menu {
top: 0;
left: 100%; /* Rechts neben dem Elternmenü */
margin-top: -3px;
}
.sub-menu li:hover > .sub-menu {
opacity: 1;
visibility: visible;
transform: translateX(10px);
}
/* Pfeil für Level 2 nach rechts zeigen */
.sub-menu .menu-item-has-children > a::after {
content: '\f105'; /* FontAwesome Right Arrow */
float: right;
margin-left: 0;
margin-top: 4px;
}
/* --- MOBILE TOGGLE BUTTON --- */
.menu-toggle {
display: none; /* Auf Desktop ausblenden */
background: transparent;
border: none;
color: var(--text-color);
font-size: 24px;
cursor: pointer;
padding: 5px;
transition: color 0.3s ease;
}
.menu-toggle:hover {
color: var(--primary-accent);
}
/* --- HEADER INFO & SOCIAL LINKS --- */
.header-info {
display: flex;
align-items: center;
gap: 20px;
}
.social-links {
display: flex;
gap: 15px;
}
.social-links a {
font-size: 18px;
color: var(--text-muted);
transition: color 0.2s ease;
}
.social-links a:hover {
color: var(--primary-accent);
}
/* === HERO / SLIDER === */
.hero-slider {
width: 100%;
height: var(--header-height);
position: relative;
overflow: hidden; /* FIX: Swiper Loop-Klon-Slides dürfen nicht herausragen */
}
.swiper-slide {
background-size: cover;
background-position: center;
display: flex;
align-items: center;
justify-content: center;
}
.swiper-slide::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.4);
z-index: 1;
}
.slider-content {
text-align: center;
color: #fff;
z-index: 2;
padding: 20px;
}
.slider-title {
font-size: 48px;
font-weight: 700;
margin-bottom: 20px;
text-shadow: 2px 2px 8px rgba(0,0,0,0.7);
}
.slider-subtitle {
font-size: 20px;
font-weight: 400;
}
.swiper-pagination-bullet { background: #fff; opacity: 0.5; }
.swiper-pagination-bullet-active { background: var(--primary-accent); opacity: 1; }
.swiper-button-prev, .swiper-button-next {
color: #fff;
background: rgba(0,0,0,0.3);
width: 44px;
height: 44px;
border-radius: 50%;
transition: background 0.2s ease;
}
.swiper-button-prev:hover, .swiper-button-next:hover { background: rgba(0,0,0,0.6); }
.swiper-button-prev::after, .swiper-button-next::after { font-size: 20px; }
/* === Hauptinhalt & Karten-Layout === */
.site-main { padding: 80px 0; }
.content-area {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
gap: 30px;
}
.post, .page-content {
background-color: var(--card-bg);
border-radius: 8px;
overflow: hidden;
border: 1px solid var(--border-color);
transition: transform 0.3s ease, border-color 0.3s ease;
}
.post:hover, .page-content:hover {
transform: translateY(-5px);
border-color: var(--primary-accent);
box-shadow: 0 0 20px rgba(0, 212, 255, 0.3);
}
.post-content, .page-content-inner { padding: 25px; }
.post-title, .page-title {
font-size: 20px;
margin-top: 0;
margin-bottom: 10px;
}
.post-title a, .page-title a {
color: var(--text-color);
}
.post-title a:hover, .page-title a:hover {
color: var(--primary-accent);
}
/* === FOOTER (NEUES DESIGN) ========================================== */
.site-footer {
background-color: var(--surface-color);
border-top: 4px solid var(--primary-accent);
padding: 60px 0 0 0;
margin-top: 0;
position: relative;
flex-shrink: 0;
}
/* Widget Grid Layout */
.footer-widgets {
display: grid;
/* Responsive Grid: Mindestens 250px breit, füllt den Rest auf */
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 40px;
margin-bottom: 50px;
}
/* Widget Überschriften */
.footer-widget .widget-title {
font-size: 16px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 1px;
color: var(--primary-accent);
margin-bottom: 20px;
padding-bottom: 10px;
border-bottom: 2px solid rgba(255,255,255,0.1);
display: inline-block;
}
/* Listen in Widgets */
.footer-widget ul {
list-style: none;
margin: 0;
padding: 0;
}
.footer-widget ul li {
margin-bottom: 12px;
}
.footer-widget ul li a {
color: var(--text-muted);
text-decoration: none;
font-size: 14px;
transition: all 0.3s ease;
display: inline-block;
border-left: 2px solid transparent;
padding-left: 10px;
}
.footer-widget ul li a:hover {
color: #fff;
border-left-color: var(--primary-accent);
padding-left: 15px; /* Schiebe-Effekt */
}
/* === FOOTER BOTTOM BAR ============================================= */
.footer-bottom-bar {
border-top: 1px solid var(--border-color);
padding: 25px 0;
display: flex;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
gap: 20px;
font-size: 13px;
}
.footer-left-group {
display: flex;
flex-direction: column;
gap: 10px;
}
.footer-right-group {
display: flex;
align-items: center;
}
/* Site Info & Credit */
.site-info {
color: var(--text-muted);
margin: 0;
}
.footer-credit a {
color: var(--text-muted);
transition: color 0.2s;
}
.footer-credit a:hover {
color: var(--primary-accent);
}
/* Footer Navigation (Menü unten) */
.footer-navigation {
display: flex;
gap: 20px;
}
.footer-menu {
list-style: none;
margin: 0;
padding: 0;
display: flex;
gap: 15px;
}
.footer-menu a {
color: var(--text-muted);
text-decoration: none;
font-size: 13px;
transition: color 0.2s;
}
.footer-menu a:hover {
color: #fff;
text-decoration: underline;
}
/* Legal Links */
.footer-legal-links {
display: flex;
gap: 20px;
}
.footer-legal-links a {
color: var(--text-muted);
text-decoration: none;
display: flex;
align-items: center;
gap: 5px;
transition: color 0.2s;
}
.footer-legal-links a:hover {
color: var(--primary-accent);
}
.footer-legal-links i {
font-size: 14px;
}
/* === THEME TOGGLE (Fixiert unten links) ========================= */
.theme-toggle {
position: fixed; /* Schwebend über dem Inhalt */
left: 30px; /* <== WIEDER LINKS */
bottom: 30px;
z-index: 9999;
width: 70px;
height: 36px;
background: var(--card-bg);
border: 2px solid var(--border-color);
border-radius: 30px;
cursor: pointer;
display: flex;
align-items: center;
padding: 3px;
box-shadow: 0 4px 20px rgba(0,0,0,0.4);
backdrop-filter: blur(10px);
transition: all 0.3s ease;
outline: none;
}
.theme-toggle:hover {
border-color: var(--primary-accent);
box-shadow: 0 0 25px rgba(0,212,255,0.5);
}
/* Light Mode Anpassung für den Toggle */
html.light-mode .theme-toggle {
box-shadow: 0 4px 20px rgba(0,0,0,0.15);
background: #fff;
}
/* Der bewegliche Punkt im Toggle */
.theme-toggle::before {
content: '';
position: absolute;
width: 28px;
height: 28px;
background: linear-gradient(135deg, var(--primary-accent), #0099cc);
border-radius: 50%;
left: 3px;
transition: all 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);
box-shadow: 0 2px 8px rgba(0,0,0,0.3);
}
/* Im Light Mode rutscht der Punkt nach rechts */
html.light-mode .theme-toggle::before {
transform: translateX(34px);
background: linear-gradient(135deg, #ffd700, #ffaa00);
}
/* Icons Container */
.theme-toggle-icons {
display: flex;
justify-content: space-between;
align-items: center;
width: 100%;
padding: 0 6px;
position: relative;
z-index: 1;
pointer-events: none; /* Klicks gehen auf den Button */
}
.icon-moon, .icon-sun {
width: 18px;
height: 18px;
transition: all 0.3s ease;
flex-shrink: 0;
stroke: currentColor;
}
.icon-moon { color: #a0a0ff; opacity: 1; }
.icon-sun { color: #ffd700; opacity: 0.3; }
html.light-mode .icon-moon { opacity: 0.3; }
html.light-mode .icon-sun { opacity: 1; }
.theme-toggle:hover .icon-moon,
.theme-toggle:hover .icon-sun {
transform: scale(1.1);
}
/* === FAQ STYLING === */
.page-header {
text-align: center;
margin-bottom: 40px;
padding-bottom: 20px;
border-bottom: 1px solid var(--border-color);
}
.page-header .page-title { font-size: 2.5rem; margin-bottom: 10px; }
.faq-category-title {
font-size: 1.5rem;
color: var(--primary-accent);
margin-top: 40px;
margin-bottom: 20px;
border-bottom: 2px solid var(--primary-accent);
padding-bottom: 5px;
display: none;
}
.faq-category-title:first-child { margin-top: 0; }
.faq-item {
background-color: var(--card-bg);
border: 1px solid var(--border-color);
border-radius: 8px;
margin-bottom: 15px;
overflow: hidden;
transition: border-color 0.3s ease;
}
.faq-item:hover { border-color: var(--primary-accent); }
.faq-question {
width: 100%;
background: none;
border: none;
padding: 20px;
font-size: 0.95rem;
font-weight: 600;
color: var(--text-color);
text-align: left;
cursor: pointer;
display: flex;
justify-content: space-between;
align-items: center;
transition: background-color 0.2s ease;
}
.faq-question:hover { background-color: rgba(0, 212, 255, 0.05); }
.faq-question::after {
content: '+';
font-size: 1.5rem;
font-weight: 700;
color: var(--primary-accent);
transition: transform 0.3s ease;
}
.faq-item.active .faq-question::after { transform: rotate(45deg); }
.faq-answer {
padding: 0 20px;
max-height: 0;
overflow: hidden;
transition: max-height 0.4s ease-out, padding 0.4s ease-out;
}
.faq-answer p { margin-bottom: 20px; font-size: 0.9rem; }
.faq-item.active .faq-answer {
padding: 0 20px 20px;
max-height: 1000px;
transition: max-height 0.4s ease-in, padding 0.4s ease-in;
}
.single-faq .entry-content {
background-color: var(--card-bg);
padding: 30px;
border-radius: 8px;
border: 1px solid var(--border-color);
}
.back-to-faq {
display: inline-block;
margin-top: 15px;
font-size: 0.9rem;
color: var(--text-muted);
}
.back-to-faq:hover { color: var(--primary-accent); }
.faq-archive-container {
background-color: var(--card-bg);
border-radius: 8px;
border: 1px solid var(--border-color);
padding: 40px;
margin-bottom: 30px;
margin-top: 40px;
}
.faq-tabs {
list-style: none;
margin: 0 0 30px 0;
padding: 0;
display: flex;
border-bottom: 2px solid var(--border-color);
}
.faq-tabs li { margin-bottom: -2px; }
.faq-tab-button {
background: none;
border: none;
padding: 15px 25px;
font-size: 0.9rem;
font-weight: 600;
color: var(--text-muted);
cursor: pointer;
border-bottom: 3px solid transparent;
transition: color 0.2s ease, border-color 0.2s ease;
}
.faq-tab-button:hover { color: var(--text-color); }
.faq-tab-button.active {
color: var(--primary-accent);
border-bottom-color: var(--primary-accent);
}
/* === NEUE FAQ TAB STYLING (FESTE HÖHE) === */
.faq-tab-content-container {
display: grid; /* Wichtig: Erzeugt ein Gitter-Layout */
/* Alle direkten Kinder (.faq-tab-pane) werden automatisch auf die gleiche Höhe gesetzt */
}
.faq-tab-pane {
/* Grid-Item-Styling */
grid-area: 1 / 1 / 2 / 2; /* Alle Panes belegen dieselbe Gitterzelle */
/* Visuelles Ein- und Ausblenden */
opacity: 0; /* Standardmäßig unsichtbar */
pointer-events: none; /* Nicht klickbar, wenn unsichtbar */
transition: opacity 0.4s ease-in-out;
}
.faq-tab-pane.active {
opacity: 1; /* Sichtbar machen */
pointer-events: auto; /* Wieder klickbar machen */
}
/* === ANKÜNDIGUNGSLEISTE ============================================== */
.announcement-bar {
background-color: var(--announcement-bg, #2c3e50);
color: #ffffff;
padding: 12px 0;
text-align: center;
position: relative;
border-bottom: 3px solid var(--primary-accent);
font-size: 15px;
}
.announcement-bar .container {
display: flex;
align-items: center;
justify-content: center;
padding-right: 40px;
}
.announcement-bar .announcement-title {
margin: 0;
font-size: 16px;
font-weight: 600;
color: #fff;
}
.announcement-bar p {
margin: 0 0 15px;
}
.announcement-close {
position: absolute;
right: 20px;
top: 50%;
transform: translateY(-50%);
background: none;
border: none;
color: #ffffff;
font-size: 24px;
line-height: 1;
cursor: pointer;
opacity: 0.7;
transition: opacity 0.2s ease;
}
.announcement-close:hover {
opacity: 1;
}
/* === CUSTOMIZER & SONSTIGES === */
.hero-slider.slider-hide-arrows .swiper-button-next,
.hero-slider.slider-hide-arrows .swiper-button-prev {
opacity: 0 !important;
pointer-events: none !important;
transition: opacity 0.3s ease;
}
.hero-slider.slider-hide-pagination .swiper-pagination { display: none !important; }
/* =================================================================== */
/* === Titel der statischen Startseite ausblenden ==================== */
/* =================================================================== */
/* Zielt genau auf das <h2>-Element mit der Klasse "post-title" ab */
body.home-title-hidden h2.post-title {
display: none !important;
}
/* =========================================================================
=== SCROLL TO TOP BUTTON ===============================================
========================================================================= */
#scroll-to-top {
position: fixed;
bottom: 30px; /* <== WIEDER NORMAL POSITIONIERT */
right: 30px;
width: 50px;
height: 50px;
background-color: var(--primary-accent, #00d4ff);
color: #fff;
border: none;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
font-size: 18px;
line-height: 1;
z-index: 9999;
cursor: pointer;
opacity: 0;
visibility: hidden;
transition: opacity 0.4s ease, transform 0.4s ease, visibility 0.4s ease;
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}
#scroll-to-top.show {
opacity: 1;
visibility: visible;
}
#scroll-to-top:hover {
background-color: #00a8cc; /* Etwas dunklerer Blauton beim Hover */
transform: translateY(-5px); /* Kleiner "Bounce"-Effekt beim Hover */
box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
}
/* Anpassungen für kleinere Bildschirme */
@media screen and (max-width: 768px) {
#scroll-to-top {
bottom: 20px; /* Mobile Standard */
right: 20px;
width: 45px;
height: 45px;
font-size: 16px;
}
}
/* Ladezustand für den Slider - Verhindert das Flackern beim Laden */
.hero-slider.swiper-loading {
opacity: 0;
visibility: hidden;
transition: opacity 0.4s ease-in-out;
}
.hero-slider:not(.swiper-loading) {
opacity: 1;
visibility: visible;
}
/* =================================================================== */
/* === Abstand für die neuen Trennlinien ============================== */
/* =================================================================== */
/* Abstand nach dem Slider zum Hauptinhalt */
main#primary.site-main {
padding-top: 40px; /* Passe den Wert bei Bedarf an */
}
/* =================================================================== */
/* === RESPONSIVE DESIGN ============================================== */
/* =================================================================== */
/* --- Navigation Mobile Breakpoint (992px) --- */
@media (max-width: 992px) {
.header-main {
gap: 20px;
flex-wrap: wrap;
}
.site-branding { flex-grow: 1; }
.header-info { order: 2; } /* Social rechts */
#site-navigation { order: 3; width: 100%; }
.menu-toggle {
display: block;
margin-left: auto;
}
/* Hauptliste mobil */
.primary-menu {
display: none; /* Standardmäßig eingeklappt */
flex-direction: column;
width: 100%;
gap: 0;
background-color: var(--surface-color);
border: 1px solid var(--border-color);
border-radius: 8px;
margin-top: 20px;
padding: 10px 0;
}
/* Wenn .toggled aktiv ist, zeigen */
#site-navigation.toggled .primary-menu {
display: flex;
animation: slideDown 0.3s ease forwards;
}
.menu-item { width: 100%; text-align: left; }
#site-navigation a { padding: 15px 20px; }
/* Submenus mobil - Akkordeon Style */
.sub-menu {
position: static;
opacity: 1;
visibility: visible;
transform: none;
display: none; /* Standardmäßig eingeklappt */
width: 100%;
box-shadow: none;
border: none;
border-left: 2px solid var(--primary-accent);
background-color: rgba(0,0,0,0.2);
margin-top: 5px;
margin-bottom: 5px;
padding-left: 15px;
}
/* Mobil: Wenn Eltern-Element aktiv ist, zeige Submenu */
.menu-item.active > .sub-menu {
display: block;
}
.sub-menu .sub-menu { padding-left: 20px; border-left: none; }
/* Pfeile im Mobile-Modus ausblenden oder anpassen */
.menu-item-has-children > a::after { float: right; }
}
@keyframes slideDown {
from { opacity: 0; transform: translateY(-10px); }
to { opacity: 1; transform: translateY(0); }
}
/* --- General Mobile Breakpoint (768px) --- */
@media (max-width: 768px) {
/* Header */
.custom-logo-link img, .custom-logo { max-height: 50px; }
/* Hero */
.slider-title { font-size: 32px; }
.slider-subtitle { font-size: 18px; }
.hero-buttons a { display: block; margin: 10px auto; width: 80%; }
/* Footer Responsive */
.site-footer {
padding: 40px 0 0 0;
}
.footer-bottom-bar {
flex-direction: column;
align-items: flex-start; /* Links ausrichten auf Mobile */
text-align: center; /* Zentrieren */
gap: 15px;
}
.footer-left-group,
.footer-right-group,
.footer-navigation {
width: 100%;
justify-content: center;
flex-direction: column;
align-items: center;
}
.site-info, .footer-legal-links a {
text-align: center;
}
.footer-menu {
flex-wrap: wrap;
justify-content: center;
}
/* Theme Toggle Responsive */
.theme-toggle {
width: 60px;
height: 32px;
left: 15px; /* <== Links bleiben */
bottom: 15px;
}
.theme-toggle::before {
width: 24px;
height: 24px;
}
html.light-mode .theme-toggle::before { transform: translateX(28px); }
.icon-moon, .icon-sun { width: 16px; height: 16px; }
}
/* =================================================================== */
/* === Titel der Startseite ausblenden / anzeigen ==================== */
/* =================================================================== */
/* Wenn der Body die Klasse hat, wird der komplette Header-Bereich der Startseite ausgeblendet */
body.home-title-hidden .site-main .entry-header,
body.home-title-hidden .site-main .page-header {
display: none !important;
}
/* Announcement Bar - basics */
#mm-announcement {
width: 100%;
position: relative;
z-index: 9999;
box-sizing: border-box;
transition: all 220ms ease;
}
/* Inner container centers text and keeps close button to the right */
.mm-announcement-inner {
max-width: 1400px;
margin: 0 auto;
padding: 12px 20px;
display: flex;
align-items: center;
justify-content: center;
position: relative;
}
/* Text center */
.mm-announcement-text {
text-align: center;
line-height: 1.2;
}
/* Close button on the right edge of the inner container */
.mm-announcement-close {
position: absolute;
right: 20px;
top: 50%;
transform: translateY(-50%);
background: none;
border: none;
color: inherit;
font-size: 22px;
cursor: pointer;
padding: 6px;
line-height: 1;
}
/* Responsive tweaks */
@media (max-width: 600px) {
.mm-announcement-inner {
padding: 10px 12px;
}
.mm-announcement-close {
right: 12px;
font-size: 20px;
}
.mm-announcement-text { font-size: 14px; }
}
/* ==========================================================================
TEAM / STAFF SHOWCASE STYLES (AKTUALISIERT)
========================================================================== */
/* --- WICHTIG: Container Breite definieren ---
Das sorgt dafür, dass die Cards breiter werden können. */
.container {
max-width: 1500px; /* Von 1200px auf 1500px erhöht für breitere Karten */
margin: 0 auto;
padding: 0 20px;
width: 100%;
}
/* --- 1. Container Der Hintergrund-Karton --- */
.team-archive-container {
background-color: var(--card-bg);
border-radius: 8px;
border: 1px solid var(--border-color);
padding: 50px;
margin-bottom: 30px;
margin-top: 40px;
}
.page-header {
text-align: center;
margin-bottom: 50px;
}
.page-header .page-title {
font-size: 2.5rem;
color: var(--primary-accent);
text-transform: uppercase;
letter-spacing: 2px;
margin-bottom: 10px;
}
.page-header .page-description {
font-size: 1.2rem;
color: var(--text-muted);
}
/* --- 2. Grid Layout (FESTE 3 SPALTEN) --- */
.team-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 25px; /* Etwas weniger Abstand = Mehr Breite */
}
/* --- 3. Team Card Design (AKTUELL) --- */
.team-card {
background-color: transparent;
/* AKTUALISIERUNG: Border ist jetzt die Akzentfarbe (farbig) */
border: 1.5px solid var(--primary-accent);
border-radius: 12px;
overflow: visible; /* Avatar soll über den Rand ragen */
transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
position: relative;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
padding: 0 0 40px 0;
margin-top: 50px;
height: 70%;
width: 100%;
justify-content: space-between;
}
/* Hover Effekt */
.team-card:hover {
transform: translateY(-10px);
/* Border wird beim Hover auch heller oder die Glow-Farbe je nach Wunsch */
box-shadow: 0 15px 40px rgba(0, 0, 0, 0.5), 0 0 25px rgba(0, 212, 255, 0.4);
}
/* --- 4. Runder Avatar (AKTUELL) --- */
.team-image-wrapper {
margin-top: -50px;
width: 150px;
height: 150px;
border-radius: 50%;
border: 5px solid var(--card-bg); /* Innerer Hintergrund-Rand */
/* WICHTIG: Hier ist KEIN box-shadow mehr (Kein dauerhafter Glow) */
overflow: hidden;
background-color: #000;
z-index: 2;
flex-shrink: 0;
/* Transition für den Hover-Effekt hinzugefügt */
transition: transform 0.5s ease, box-shadow 0.3s ease;
}
.team-image-wrapper img {
width: 100%;
height: 100%;
object-fit: cover;
}
/* --- NEU: Glow ONLY ON HOVER --- */
/* Wenn Maus auf die Karte fährt, bekommt der Avatar einen Glow */
.team-card:hover .team-image-wrapper {
/* Der Glow erscheint nur hier */
box-shadow: 0 0 0 6px var(--primary-accent);
}
/* Zusätzlich: Zoom-Effekt beim Hover (Optionale Verfeinerung) */
.team-card:hover .team-image-wrapper img {
transform: scale(1.05);
}
/* --- 5. Info Bereich --- */
.team-info {
padding: 15px 35px 0 35px;
width: 100%;
display: flex;
flex-direction: column;
flex-grow: 1;
}
.team-name {
margin: 20px 0 8px 0;
font-size: 1.8rem;
color: var(--text-color);
font-weight: 700;
line-height: 1.2;
min-height: 1.2em;
}
/* --- 6. Mehrere Ränge (Wrapper) --- */
.team-ranks-wrapper {
margin-bottom: 20px;
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 10px;
}
.team-rank {
display: inline-block;
background-color: rgba(0, 212, 255, 0.1);
color: var(--primary-accent);
padding: 6px 16px;
border-radius: 25px;
font-size: 0.85rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 1px;
border: 1px solid rgba(0, 212, 255, 0.3);
}
/* --- 7. Bio Text (Begrenzung & Styling) --- */
.team-bio {
font-size: 1rem;
color: var(--text-muted);
line-height: 1.6;
/* Füllt den restlichen Platz bis unten aus */
margin-top: auto;
/* Begrenzung auf max 4 Zeilen */
display: -webkit-box;
-webkit-line-clamp: 4;
-webkit-box-orient: vertical;
overflow: hidden;
text-overflow: ellipsis;
/* Fallback für alte Browser */
max-height: 6.4em;
}
/* --- 8. Responsive Design (Tablet & Mobile) --- */
/* Tablet (2 Spalten) */
@media (max-width: 1100px) {
.team-grid {
grid-template-columns: repeat(2, 1fr);
gap: 30px;
}
.team-name { font-size: 1.6rem; }
}
/* Mobile (1 Spalte) */
@media (max-width: 768px) {
.container {
padding: 0 15px;
max-width: 100%;
}
.team-grid {
grid-template-columns: 1fr;
gap: 25px;
}
.team-archive-container {
padding: 30px 20px;
}
.team-name {
font-size: 1.5rem;
}
.team-image-wrapper {
width: 120px;
height: 120px;
margin-top: -40px;
}
}
/* =============================================================
ERGÄNZUNGEN FÜR style.css
Diesen Block ans Ende der bestehenden style.css anhängen.
Ersetzt den kompletten <style>-Block in front-page.php.
============================================================= */
/* ---------------------------------------------------------------
HOMEPAGE SIDEBAR LAYOUT
--------------------------------------------------------------- */
.content-area .main-content {
width: 100%;
margin-bottom: 40px;
}
.content-area.with-sidebar {
display: grid;
gap: 30px;
align-items: start;
}
.content-area.with-sidebar.sidebar-right {
grid-template-columns: 1fr 300px;
}
.content-area.with-sidebar.sidebar-right .main-content { order: 1; }
.content-area.with-sidebar.sidebar-right .homepage-sidebar { order: 2; }
.content-area.with-sidebar.sidebar-left {
grid-template-columns: 300px 1fr;
}
.content-area.with-sidebar.sidebar-left .homepage-sidebar { order: 1; }
.content-area.with-sidebar.sidebar-left .main-content { order: 2; }
.homepage-sidebar {
position: relative !important;
top: auto !important;
background: var(--card-bg);
border-radius: 8px;
padding: 20px;
overflow-y: auto;
max-height: calc(200vh - 10vh);
}
.homepage-sidebar .sidebar-section {
margin-bottom: 30px;
padding-bottom: 20px;
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.homepage-sidebar .sidebar-section:last-child {
margin-bottom: 0;
padding-bottom: 0;
border-bottom: none;
}
.homepage-sidebar .sidebar-top {
border-bottom: 2px solid var(--primary-accent, #00d4ff);
}
.homepage-sidebar .sidebar-bottom {
padding-top: 20px;
border-top: 2px solid var(--primary-accent, #00d4ff);
border-bottom: none;
}
.homepage-sidebar .widget { margin-bottom: 20px; }
.homepage-sidebar .widget:last-child { margin-bottom: 0; }
.homepage-sidebar .widget-title {
font-size: 1.2rem;
margin-bottom: 15px;
padding-bottom: 10px;
border-bottom: 2px solid var(--primary-accent, #00d4ff);
color: var(--primary-accent, #00d4ff);
}
.homepage-sidebar ul { list-style: none; padding: 0; margin: 0; }
.homepage-sidebar ul li {
padding: 8px 0;
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.homepage-sidebar ul li:last-child { border-bottom: none; }
.homepage-sidebar a {
color: inherit;
text-decoration: none;
transition: color 0.2s ease;
}
.homepage-sidebar a:hover { color: var(--primary-accent, #00d4ff); }
.homepage-sidebar::-webkit-scrollbar { width: 6px; }
.homepage-sidebar::-webkit-scrollbar-track { background: rgba(0,0,0,0.1); border-radius: 3px; }
.homepage-sidebar::-webkit-scrollbar-thumb { background: var(--primary-accent, #00d4ff); border-radius: 3px; }
.homepage-sidebar::-webkit-scrollbar-thumb:hover { background: var(--primary-accent-hover, #00b8e6); }
@media (max-width: 768px) {
.content-area.with-sidebar.sidebar-right,
.content-area.with-sidebar.sidebar-left {
grid-template-columns: 1fr;
}
.content-area.with-sidebar .homepage-sidebar {
order: 3 !important;
position: relative;
top: 0;
max-height: none;
}
.content-area.with-sidebar .main-content { order: 1 !important; }
}
html.dark-mode .homepage-sidebar { background: #1e1e1e; box-shadow: 0 2px 8px rgba(0,0,0,0.3); }
html.dark-mode .homepage-sidebar ul li { border-bottom-color: rgba(255,255,255,0.1); }
html.light-mode .homepage-sidebar { background: #fff; box-shadow: 0 2px 8px rgba(0,0,0,0.1); }
html.light-mode .homepage-sidebar .sidebar-section { border-bottom-color: rgba(0,0,0,0.1); }
html.light-mode .homepage-sidebar ul li { border-bottom-color: rgba(0,0,0,0.1); }
html.light-mode .homepage-sidebar .widget-title { color: var(--primary-accent, #00d4ff); }
/* ---------------------------------------------------------------
SCROLL-TO-TOP BUTTON (war bisher ohne HTML-Element)
--------------------------------------------------------------- */
#scroll-to-top {
position: fixed;
bottom: 90px; /* über dem Theme-Toggle */
right: 20px;
width: 44px;
height: 44px;
background: var(--primary-accent, #00d4ff);
color: #fff;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
text-decoration: none;
font-size: 1rem;
opacity: 0;
visibility: hidden;
transform: translateY(10px);
transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s;
z-index: 999;
box-shadow: 0 2px 10px rgba(0,0,0,0.3);
}
#scroll-to-top.show {
opacity: 1;
visibility: visible;
transform: translateY(0);
}
#scroll-to-top:hover {
background: var(--primary-accent-hover, #00b8e6);
transform: translateY(-3px);
}
/* ---------------------------------------------------------------
NAVIGATION Submenu Toggle Button
--------------------------------------------------------------- */
.submenu-toggle {
background: none;
border: none;
cursor: pointer;
color: inherit;
padding: 4px 8px;
line-height: 1;
vertical-align: middle;
}
.submenu-toggle i {
transition: transform 0.2s ease;
font-size: 0.75rem;
}
/* ---------------------------------------------------------------
SINGLE.PHP Post-Meta, Breadcrumb, Related Posts
--------------------------------------------------------------- */
/* Breadcrumb */
.breadcrumb {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 6px;
font-size: 0.85rem;
color: var(--text-muted, #a0a0a0);
margin-bottom: 20px;
}
.breadcrumb a { color: var(--text-muted, #a0a0a0); text-decoration: none; }
.breadcrumb a:hover { color: var(--primary-accent, #00d4ff); }
.breadcrumb-sep { font-size: 0.65rem; opacity: 0.5; }
.breadcrumb-current { color: var(--primary-accent, #00d4ff); }
/* Post Hero Bild */
.post-hero-image {
margin-bottom: 30px;
border-radius: 8px;
overflow: hidden;
}
.post-hero-image img { width: 100%; height: auto; display: block; }
/* Post Meta Leiste */
.post-meta {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: center;
gap: 0;
margin-bottom: 24px;
background: var(--surface-color, #1e2029);
border-radius: 10px;
border: 1px solid var(--border-color, #333);
font-size: 0.85rem;
color: var(--text-muted, #a0a0a0);
overflow: hidden;
}
/* Jedes Meta-Item bekommt einen Trenner rechts */
.post-meta-item {
display: flex;
align-items: center;
gap: 7px;
padding: 12px 18px;
border-right: 1px solid var(--border-color, #333);
transition: background 0.2s, color 0.2s;
}
.post-meta-item:last-child {
border-right: none;
}
.post-meta-item:hover {
background: rgba(0, 212, 255, 0.05);
color: var(--text-color);
}
.post-meta-item a { color: inherit; text-decoration: none; }
.post-meta-item a:hover { color: var(--primary-accent, #00d4ff); }
.post-meta-item i {
color: var(--primary-accent, #00d4ff);
font-size: 0.8rem;
flex-shrink: 0;
}
/* Autor bekommt besondere Behandlung */
.post-meta-item.post-author {
font-weight: 600;
color: var(--text-color);
}
.post-meta-item.post-author .author-avatar {
border: 2px solid var(--primary-accent, #00d4ff);
}
/* Lesezeit bekommt einen Akzent */
.post-meta-item.post-read-time {
background: rgba(0, 212, 255, 0.04);
}
@media (max-width: 640px) {
.post-meta {
display: grid;
grid-template-columns: 1fr 1fr;
}
.post-meta-item {
border-right: 1px solid var(--border-color, #333);
border-bottom: 1px solid var(--border-color, #333);
}
.post-meta-item:nth-child(even) { border-right: none; }
}
.author-avatar {
border-radius: 50%;
width: 24px !important;
height: 24px !important;
object-fit: cover;
}
/* Kategorie Badges */
.post-categories-top {
display: flex;
gap: 8px;
flex-wrap: wrap;
margin-bottom: 16px;
}
.post-category-badge {
display: inline-block;
padding: 3px 12px;
background: var(--primary-accent, #00d4ff);
color: #fff !important;
font-size: 0.78rem;
font-weight: 600;
border-radius: 20px;
text-decoration: none;
transition: opacity 0.2s;
}
.post-category-badge:hover { opacity: 0.85; }
/* Post Footer */
.post-footer {
margin-top: 40px;
padding-top: 24px;
border-top: 1px solid rgba(255,255,255,0.08);
}
/* Tags */
.post-tags {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 8px;
margin-bottom: 24px;
}
.post-tags > i { color: var(--primary-accent, #00d4ff); }
.post-tag {
display: inline-block;
padding: 4px 12px;
background: var(--card-bg);
border: 1px solid rgba(255,255,255,0.1);
border-radius: 20px;
font-size: 0.82rem;
color: inherit;
text-decoration: none;
transition: border-color 0.2s, color 0.2s;
}
.post-tag:hover {
border-color: var(--primary-accent, #00d4ff);
color: var(--primary-accent, #00d4ff);
}
/* Post Navigation */
.post-navigation {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 16px;
margin-top: 24px;
}
.post-nav-link {
display: flex;
flex-direction: column;
padding: 16px;
background: var(--card-bg);
border-radius: 8px;
text-decoration: none;
border: 1px solid rgba(255,255,255,0.06);
transition: border-color 0.2s, transform 0.2s;
}
.post-nav-link:hover {
border-color: var(--primary-accent, #00d4ff);
transform: translateY(-2px);
}
.post-nav-next { text-align: right; }
.post-nav-label {
font-size: 0.78rem;
color: var(--text-muted, #a0a0a0);
margin-bottom: 6px;
display: flex;
align-items: center;
gap: 6px;
}
.post-nav-next .post-nav-label { justify-content: flex-end; }
.post-nav-title {
font-size: 0.9rem;
font-weight: 600;
line-height: 1.4;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
/* Related Posts */
.related-posts {
margin-top: 50px;
padding-top: 30px;
border-top: 1px solid rgba(255,255,255,0.08);
}
.related-posts-title {
font-size: 1.2rem;
margin-bottom: 20px;
display: flex;
align-items: center;
gap: 10px;
}
.related-posts-title i { color: var(--primary-accent, #00d4ff); }
.related-posts-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 20px;
}
.related-post-card {
background: var(--card-bg);
border-radius: 8px;
overflow: hidden;
border: 1px solid rgba(255,255,255,0.06);
transition: transform 0.2s, border-color 0.2s;
}
.related-post-card:hover {
transform: translateY(-4px);
border-color: var(--primary-accent, #00d4ff);
}
.related-post-thumb img {
width: 100%;
height: 140px;
object-fit: cover;
display: block;
}
.related-post-info { padding: 14px; }
.related-post-title {
font-size: 0.9rem;
margin: 0 0 8px;
line-height: 1.4;
}
.related-post-title a { text-decoration: none; }
.related-post-title a:hover { color: var(--primary-accent, #00d4ff); }
.related-post-date {
font-size: 0.78rem;
color: var(--text-muted, #a0a0a0);
}
.related-post-date i { color: var(--primary-accent, #00d4ff); margin-right: 4px; }
@media (max-width: 768px) {
.post-navigation { grid-template-columns: 1fr; }
.related-posts-grid { grid-template-columns: 1fr; }
.post-meta { gap: 10px; }
}
/* ---------------------------------------------------------------
ARCHIVE.PHP & SEARCH.PHP Karten-Layout
--------------------------------------------------------------- */
.archive-header {
margin-bottom: 36px;
padding-bottom: 24px;
border-bottom: 1px solid rgba(255,255,255,0.08);
}
.archive-type-badge {
display: inline-flex;
align-items: center;
gap: 7px;
padding: 4px 14px;
background: var(--primary-accent, #00d4ff);
color: #fff;
font-size: 0.78rem;
font-weight: 700;
border-radius: 20px;
text-transform: uppercase;
letter-spacing: 0.05em;
margin-bottom: 12px;
}
.archive-title {
font-size: clamp(1.4rem, 3vw, 2.2rem);
margin: 0 0 8px;
}
.archive-description { color: var(--text-muted, #a0a0a0); margin: 0; }
.archive-author-header {
display: flex;
align-items: center;
gap: 20px;
}
.archive-author-avatar {
border-radius: 50%;
width: 80px !important;
height: 80px !important;
object-fit: cover;
flex-shrink: 0;
}
/* Posts Grid */
.archive-posts-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
gap: 24px;
margin-bottom: 40px;
}
.archive-post-card {
background: var(--card-bg);
border-radius: 10px;
overflow: hidden;
border: 1px solid rgba(255,255,255,0.06);
transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
display: flex;
flex-direction: column;
}
.archive-post-card:hover {
transform: translateY(-4px);
border-color: var(--primary-accent, #00d4ff);
box-shadow: 0 8px 24px rgba(0,0,0,0.2);
}
.archive-card-thumb img {
width: 100%;
height: 180px;
object-fit: cover;
display: block;
transition: transform 0.4s ease;
}
.archive-post-card:hover .archive-card-thumb img { transform: scale(1.04); }
.archive-card-thumb { overflow: hidden; }
.archive-card-body {
padding: 18px;
display: flex;
flex-direction: column;
flex: 1;
}
.archive-card-cats,
.archive-card-type { margin-bottom: 10px; }
.post-type-badge {
display: inline-flex;
align-items: center;
gap: 5px;
font-size: 0.75rem;
color: var(--text-muted, #a0a0a0);
background: rgba(255,255,255,0.06);
padding: 3px 10px;
border-radius: 20px;
}
.archive-card-title {
font-size: 1rem;
margin: 0 0 10px;
line-height: 1.4;
}
.archive-card-title a { text-decoration: none; }
.archive-card-title a:hover { color: var(--primary-accent, #00d4ff); }
.archive-card-meta {
display: flex;
flex-wrap: wrap;
gap: 12px;
font-size: 0.8rem;
color: var(--text-muted, #a0a0a0);
margin-bottom: 12px;
}
.archive-card-meta i { color: var(--primary-accent, #00d4ff); margin-right: 3px; }
.archive-card-excerpt {
font-size: 0.9rem;
line-height: 1.6;
color: var(--text-muted, #a0a0a0);
flex: 1;
margin-bottom: 16px;
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
overflow: hidden;
}
.archive-card-read-more {
display: inline-flex;
align-items: center;
gap: 7px;
font-size: 0.85rem;
font-weight: 600;
color: var(--primary-accent, #00d4ff);
text-decoration: none;
margin-top: auto;
transition: gap 0.2s;
}
.archive-card-read-more:hover { gap: 12px; }
/* Pagination */
.archive-pagination { margin-top: 40px; }
.archive-pagination .nav-links {
display: flex;
justify-content: center;
align-items: center;
gap: 8px;
flex-wrap: wrap;
}
.archive-pagination .page-numbers {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 38px;
height: 38px;
padding: 0 10px;
border-radius: 6px;
background: var(--card-bg);
border: 1px solid rgba(255,255,255,0.08);
text-decoration: none;
font-size: 0.9rem;
transition: background 0.2s, border-color 0.2s;
}
.archive-pagination .page-numbers:hover,
.archive-pagination .page-numbers.current {
background: var(--primary-accent, #00d4ff);
border-color: var(--primary-accent, #00d4ff);
color: #fff;
}
/* No posts found */
.no-posts-found {
text-align: center;
padding: 60px 20px;
color: var(--text-muted, #a0a0a0);
}
.no-posts-found i { display: block; margin-bottom: 16px; opacity: 0.3; }
.no-posts-found h2 { margin-bottom: 10px; }
/* ---------------------------------------------------------------
SEARCH spezifisch
--------------------------------------------------------------- */
.search-header { margin-bottom: 36px; }
.search-result-count { color: var(--text-muted, #a0a0a0); margin: 8px 0 20px; }
.search-query em { font-style: normal; color: var(--primary-accent, #00d4ff); }
.search-refine { max-width: 500px; }
/* Suchformular */
.search-form-inner {
display: flex;
align-items: center;
background: var(--card-bg);
border: 1px solid rgba(255,255,255,0.1);
border-radius: 8px;
overflow: hidden;
transition: border-color 0.2s;
}
.search-form-inner:focus-within { border-color: var(--primary-accent, #00d4ff); }
.search-field {
flex: 1;
padding: 12px 16px;
background: none;
border: none;
outline: none;
color: inherit;
font-family: inherit;
font-size: 1rem;
}
.search-field::placeholder { color: var(--text-muted, #a0a0a0); }
.search-submit {
padding: 12px 18px;
background: none;
border: none;
cursor: pointer;
color: var(--primary-accent, #00d4ff);
font-size: 1rem;
transition: color 0.2s;
}
.search-submit:hover { color: #fff; }
/* ---------------------------------------------------------------
LIGHT MODE Anpassungen für neue Komponenten
--------------------------------------------------------------- */
html.light-mode .post-meta,
html.light-mode .archive-post-card,
html.light-mode .related-post-card,
html.light-mode .post-nav-link,
html.light-mode .post-tag,
html.light-mode .search-form-inner,
html.light-mode .archive-pagination .page-numbers {
background: #fff;
border-color: rgba(0,0,0,0.08);
}
html.light-mode .archive-card-excerpt,
html.light-mode .archive-card-meta,
html.light-mode .post-meta,
html.light-mode .breadcrumb,
html.light-mode .related-post-date {
color: #666;
}
/* ---------------------------------------------------------------
HEADER Suche Toggle & Logo-Fix
--------------------------------------------------------------- */
/* FIX: Wenn Logo + Site-Title gleichzeitig sichtbar waren */
.site-branding .custom-logo-link + .site-title { display: none; }
/* Header Suche */
.header-search {
position: relative;
}
.header-search-toggle {
background: none;
border: none;
cursor: pointer;
color: inherit;
font-size: 1rem;
padding: 8px;
border-radius: 6px;
transition: color 0.2s, background 0.2s;
line-height: 1;
}
.header-search-toggle:hover {
color: var(--primary-accent, #00d4ff);
background: rgba(255,255,255,0.05);
}
.header-search {
position: relative;
}
.header-search-dropdown {
position: absolute;
top: calc(100% + 10px);
right: 0;
width: 280px;
background: var(--card-bg);
border: 1px solid rgba(255,255,255,0.1);
border-radius: 8px;
padding: 12px;
box-shadow: 0 8px 24px rgba(0,0,0,0.3);
opacity: 0;
visibility: hidden;
transform: translateY(-6px);
transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
z-index: 9999;
}
.header-search-dropdown.open {
opacity: 1;
visibility: visible;
transform: translateY(0);
}
html.light-mode .header-search-dropdown {
background: #fff;
border-color: rgba(0,0,0,0.1);
box-shadow: 0 8px 24px rgba(0,0,0,0.12);
}
/* ---------------------------------------------------------------
COMMENTS
--------------------------------------------------------------- */
.comments-area {
margin-top: 50px;
padding-top: 30px;
border-top: 1px solid rgba(255,255,255,0.08);
}
.comments-title {
font-size: 1.3rem;
margin-bottom: 28px;
display: flex;
align-items: center;
gap: 10px;
}
.comments-title i { color: var(--primary-accent, #00d4ff); }
.comments-title span { color: var(--primary-accent, #00d4ff); }
/* Kommentar-Navigation */
.comment-navigation {
display: flex;
justify-content: space-between;
margin-bottom: 24px;
font-size: 0.9rem;
}
.comment-navigation a {
color: var(--primary-accent, #00d4ff);
text-decoration: none;
display: inline-flex;
align-items: center;
gap: 6px;
}
/* Kommentar-Liste */
.comment-list {
list-style: none;
padding: 0;
margin: 0 0 40px;
}
.comment-list .children {
list-style: none;
padding-left: 40px;
margin-top: 16px;
}
.comment-body {
background: var(--card-bg);
border-radius: 8px;
padding: 20px;
margin-bottom: 16px;
border: 1px solid rgba(255,255,255,0.06);
transition: border-color 0.2s;
}
.comment-body:hover { border-color: rgba(255,255,255,0.1); }
.comment-meta {
display: flex;
align-items: flex-start;
gap: 14px;
margin-bottom: 14px;
}
.comment-avatar {
border-radius: 50% !important;
width: 48px !important;
height: 48px !important;
object-fit: cover;
flex-shrink: 0;
}
.comment-author-name {
font-weight: 700;
display: block;
margin-bottom: 4px;
}
.comment-author-name a {
color: inherit;
text-decoration: none;
}
.comment-author-name a:hover { color: var(--primary-accent, #00d4ff); }
.comment-date {
font-size: 0.8rem;
color: var(--text-muted, #a0a0a0);
display: flex;
align-items: center;
gap: 6px;
}
.comment-date a { color: inherit; text-decoration: none; }
.comment-date i { color: var(--primary-accent, #00d4ff); font-size: 0.7rem; }
.comment-awaiting-moderation {
font-size: 0.8rem;
color: #ffc107;
margin-top: 4px;
display: flex;
align-items: center;
gap: 5px;
}
.comment-content p:last-child { margin-bottom: 0; }
.comment-footer {
margin-top: 12px;
padding-top: 10px;
border-top: 1px solid rgba(255,255,255,0.06);
display: flex;
gap: 12px;
font-size: 0.82rem;
}
.comment-footer .reply a,
.comment-footer .edit-link a {
color: var(--text-muted, #a0a0a0);
text-decoration: none;
display: inline-flex;
align-items: center;
gap: 5px;
transition: color 0.2s;
}
.comment-footer .reply a:hover,
.comment-footer .edit-link a:hover { color: var(--primary-accent, #00d4ff); }
/* Kommentarformular */
.comment-form {
background: var(--card-bg);
border-radius: 10px;
padding: 28px;
border: 1px solid rgba(255,255,255,0.06);
}
#reply-title {
font-size: 1.1rem;
margin-bottom: 20px;
display: flex;
align-items: center;
gap: 10px;
}
.comment-form label {
display: block;
font-size: 0.85rem;
font-weight: 600;
margin-bottom: 6px;
color: var(--text-muted, #a0a0a0);
}
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea {
width: 100%;
padding: 12px 14px;
background: rgba(0,0,0,0.2);
border: 1px solid rgba(255,255,255,0.1);
border-radius: 6px;
color: inherit;
font-family: inherit;
font-size: 0.95rem;
transition: border-color 0.2s, box-shadow 0.2s;
box-sizing: border-box;
}
.comment-form input:focus,
.comment-form textarea:focus {
outline: none;
border-color: var(--primary-accent, #00d4ff);
box-shadow: 0 0 0 3px rgba(0,212,255,0.15);
}
.comment-form textarea { min-height: 120px; resize: vertical; }
.comment-form-cookies-consent label {
display: flex;
align-items: center;
gap: 8px;
font-weight: 400;
cursor: pointer;
}
.btn-comment-submit,
.comment-form .submit input {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 12px 28px;
background: var(--primary-accent, #00d4ff);
color: #fff;
border: none;
border-radius: 6px;
font-family: inherit;
font-size: 0.95rem;
font-weight: 600;
cursor: pointer;
transition: opacity 0.2s, transform 0.2s;
}
.btn-comment-submit:hover,
.comment-form .submit input:hover {
opacity: 0.88;
transform: translateY(-1px);
}
.comments-closed-notice {
padding: 16px 20px;
background: var(--card-bg);
border-radius: 8px;
border-left: 4px solid rgba(255,255,255,0.1);
color: var(--text-muted, #a0a0a0);
display: flex;
align-items: center;
gap: 10px;
}
/* Light Mode */
html.light-mode .comment-body,
html.light-mode .comment-form { background: #fff; border-color: rgba(0,0,0,0.06); }
html.light-mode .comment-form input,
html.light-mode .comment-form textarea { background: #f5f5f5; border-color: rgba(0,0,0,0.12); color: #222; }
@media (max-width: 600px) {
.comment-list .children { padding-left: 16px; }
.comment-form { padding: 18px; }
}
/* ==========================================================================
BUGFIX: Layout-Korrekturen für Single, Page, 404 und Hintergrund-Transparenz
========================================================================== */
/* FIX 1: screen-reader-text fehlt komplett, deswegen ist "Suche nach:" sichtbar */
.screen-reader-text {
border: 0;
clip: rect(1px, 1px, 1px, 1px);
clip-path: inset(50%);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
word-wrap: normal !important;
}
/* FIX 2: content-area Grid nur auf Archiv/Index Single, Page, 404 brauchen display:block.
with-sidebar wird ausgeschlossen damit die Startseiten-Sidebar weiter funktioniert. */
.single .content-area:not(.with-sidebar),
.page .content-area:not(.with-sidebar),
.error404 .content-area:not(.with-sidebar),
.search-results .content-area:not(.with-sidebar) {
display: block;
}
/* FIX 3: Single-Post Container kein overflow:hidden (verhindert Scrollen!) */
.single-post {
background: var(--card-bg);
border-radius: 10px;
border: 1px solid var(--border-color);
margin-bottom: 40px;
/* overflow:hidden ABSICHTLICH WEGGELASSEN blockiert sonst das Scrollen */
}
/* FIX 4: Single-Post Content-Bereich */
.single .post-content {
padding: 30px;
}
.single .post-hero-image img {
width: 100%;
max-height: 450px;
object-fit: cover;
display: block;
border-radius: 10px 10px 0 0;
}
/* FIX 5: 404 lesbarer Container über dem Hintergrundbild */
.error-404-container {
background: var(--card-bg);
padding: 50px 40px;
border-radius: 10px;
border: 1px solid var(--border-color);
}
/* FIX 6: Related Posts auf Single-Seite */
.related-posts {
background: var(--card-bg);
border-radius: 10px;
border: 1px solid var(--border-color);
padding: 30px;
margin-bottom: 30px;
}
/* FIX 7: Light-Mode Kompatibilität */
html.light-mode .single-post,
html.light-mode .related-posts,
html.light-mode .error-404-container {
background: var(--card-bg);
border-color: var(--border-color);
}
/* FIX 8: Archiv-Seiten content-area darf kein Grid sein, sonst landen Header,
Posts-Grid und Pagination nebeneinander in separaten Spalten */
.archive .content-area,
.category .content-area,
.tag .content-area,
.author .content-area,
.date .content-area {
display: block;
}
/* FIX 9: Archiv/Kategorie Container-Hintergrund damit alles über dem
Hintergrundbild lesbar bleibt, aber das Bild noch an den Rändern sichtbar ist */
.archive .content-area,
.category .content-area,
.tag .content-area,
.author .content-area,
.date .content-area,
.blog .content-area {
background: var(--card-bg);
border-radius: 10px;
border: 1px solid var(--border-color);
padding: 30px;
}
/* FIX 10: Archiv-Header Titelfarbe lesbar machen */
.archive-title {
color: var(--text-color) !important;
}
/* FIX 11: Light-Mode Kompatibilität */
html.light-mode .archive .content-area,
html.light-mode .category .content-area,
html.light-mode .tag .content-area,
html.light-mode .author .content-area,
html.light-mode .date .content-area,
html.light-mode .blog .content-area {
background: var(--card-bg);
border-color: var(--border-color);
}
/* FIX 12: Kommentarbereich Hintergrund damit er über dem Body-Hintergrundbild
lesbar ist. Gilt nur auf Single-Posts. */
.single .comments-area {
background: var(--card-bg);
border-radius: 10px;
border: 1px solid var(--border-color);
padding: 30px;
margin-top: 30px;
}
/* FIX 13: Auch Plugins die Kommentare/Ratings außerhalb .comments-area rendern
(z.B. Kommentar-Rating-Widgets, Abonnieren-Leisten) sollen lesbar sein */
.single .post-content ~ *:not(.related-posts):not(.comments-area) {
background: var(--card-bg);
border-radius: 10px;
border: 1px solid var(--border-color);
padding: 20px;
margin-top: 20px;
}
/* FIX 14: Light-Mode */
html.light-mode .single .comments-area {
background: var(--card-bg);
border-color: var(--border-color);
}
/* FIX 15: 404-Seite Layout komplett überarbeitet.
Flex-Row hatte die 404-Zahl außerhalb des Card-Containers geschoben.
Jetzt: zentriertes Layout, 404 oben, Content darunter. */
.error-404-container {
display: flex !important;
flex-direction: column !important;
align-items: center !important;
text-align: center !important;
padding: 60px 40px !important;
gap: 0 !important;
min-height: unset !important;
}
.error-404-visual {
margin-bottom: 10px;
}
.error-404-code {
font-size: clamp(80px, 12vw, 140px) !important;
margin-bottom: 0;
line-height: 1;
}
.error-404-blocks {
justify-content: center;
margin-top: 10px;
margin-bottom: 20px;
}
.error-404-content {
width: 100%;
max-width: 700px;
}
.error-404-title {
font-size: clamp(1.2rem, 2.5vw, 1.8rem) !important;
}
.error-404-actions {
justify-content: center !important;
}
.error-404-search {
max-width: 500px;
margin: 0 auto 30px auto !important;
}
.error-404-recent {
text-align: left;
max-width: 500px;
margin: 0 auto;
}
@media (max-width: 768px) {
.error-404-container {
padding: 40px 20px !important;
}
}
/* FIX 16: Suchergebnisse gleicher Grid-Bug wie bei Archiv und Single.
Der Such-Header landet sonst in einer eigenen Spalte neben den Karten. */
.search-results .content-area:not(.with-sidebar) {
display: block;
background: var(--card-bg);
border-radius: 10px;
border: 1px solid var(--border-color);
padding: 30px;
}
/* Such-Header Farben sicherstellen */
.search-header .archive-title { color: var(--text-color) !important; }
.search-result-count { color: var(--text-muted); margin-top: 4px; }
.search-query em { font-style: normal; }
html.light-mode .search-results .content-area:not(.with-sidebar) {
background: var(--card-bg);
border-color: var(--border-color);
}
/* ==========================================================================
Single-Post Sidebar Layout
========================================================================== */
/* Basis-Layout für Single ohne Sidebar */
.single-layout {
display: block;
}
/* Mit Sidebar: Grid-Layout */
.single-layout.with-sidebar {
display: grid;
gap: 30px;
align-items: start;
}
.single-layout.with-sidebar.sidebar-right {
grid-template-columns: 1fr 300px;
}
.single-layout.with-sidebar.sidebar-left {
grid-template-columns: 300px 1fr;
}
/* Sidebar-Styling */
.single-sidebar {
position: sticky;
top: 90px; /* unter dem sticky Header */
background: var(--card-bg);
border-radius: 10px;
border: 1px solid var(--border-color);
padding: 24px;
max-height: calc(100vh - 120px);
overflow-y: auto;
}
/* Widget-Titel in der Sidebar */
.single-sidebar .widget-title,
.single-sidebar h3.widget-title {
font-size: 1rem;
color: var(--primary-accent, #00d4ff);
border-bottom: 2px solid var(--primary-accent, #00d4ff);
padding-bottom: 8px;
margin-bottom: 14px;
text-transform: uppercase;
letter-spacing: 0.05em;
}
/* Widget-Abstand */
.single-sidebar .sidebar-widget,
.single-sidebar .widget {
margin-bottom: 28px;
padding-bottom: 24px;
border-bottom: 1px solid rgba(255,255,255,0.07);
}
.single-sidebar .sidebar-widget:last-child,
.single-sidebar .widget:last-child {
margin-bottom: 0;
padding-bottom: 0;
border-bottom: none;
}
/* Letzte Beiträge in Sidebar */
.sidebar-recent-posts {
list-style: none;
padding: 0;
margin: 0;
}
.sidebar-recent-posts li {
padding: 8px 0;
border-bottom: 1px solid rgba(255,255,255,0.06);
display: flex;
flex-direction: column;
gap: 2px;
}
.sidebar-recent-posts li:last-child { border-bottom: none; }
.sidebar-recent-posts a {
color: var(--text-color);
font-weight: 600;
font-size: 0.9rem;
text-decoration: none;
transition: color 0.2s;
}
.sidebar-recent-posts a:hover { color: var(--primary-accent, #00d4ff); }
.sidebar-post-date {
font-size: 0.78rem;
color: var(--text-muted);
}
.sidebar-post-date i { margin-right: 4px; color: var(--primary-accent, #00d4ff); }
/* Kategorien in Sidebar */
.sidebar-categories {
list-style: none;
padding: 0;
margin: 0;
}
.sidebar-categories li {
padding: 6px 0;
border-bottom: 1px solid rgba(255,255,255,0.06);
display: flex;
justify-content: space-between;
}
.sidebar-categories li:last-child { border-bottom: none; }
.sidebar-categories a {
color: var(--text-color);
font-size: 0.9rem;
text-decoration: none;
transition: color 0.2s;
}
.sidebar-categories a:hover { color: var(--primary-accent, #00d4ff); }
/* Tag Cloud in Sidebar */
.single-sidebar .widget_tag_cloud a,
.single-sidebar .tag-cloud-link {
display: inline-block;
padding: 3px 10px;
margin: 3px 2px;
border-radius: 20px;
background: rgba(255,255,255,0.06);
color: var(--text-color) !important;
font-size: 12px !important;
text-decoration: none;
transition: background 0.2s, color 0.2s;
border: 1px solid var(--border-color);
}
.single-sidebar .tag-cloud-link:hover {
background: var(--primary-accent, #00d4ff);
color: #fff !important;
border-color: var(--primary-accent, #00d4ff);
}
/* Responsive: Sidebar unter den Inhalt auf kleinen Screens */
@media (max-width: 900px) {
.single-layout.with-sidebar {
grid-template-columns: 1fr !important;
}
.single-sidebar {
position: static;
max-height: none;
order: 99; /* immer unter dem Artikel */
}
}
/* Light-Mode */
html.light-mode .single-sidebar {
background: var(--card-bg);
border-color: var(--border-color);
}
html.light-mode .sidebar-recent-posts a,
html.light-mode .sidebar-categories a {
color: var(--text-color);
}
html.light-mode .single-sidebar .tag-cloud-link {
background: rgba(0,0,0,0.05);
color: var(--text-color) !important;
border-color: var(--border-color);
}
/* Gestuftes Archiv-Dropdown in der Sidebar */
.sidebar-archive-dropdown .archive-select {
width: 100%;
padding: 9px 12px;
margin-bottom: 10px;
background: var(--surface-color, #1e2029);
border: 1px solid var(--border-color, #333);
border-radius: 6px;
color: var(--text-color, #e4e4e4);
font-family: 'Raleway', sans-serif;
font-size: 0.88rem;
cursor: pointer;
appearance: none;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2300d4ff' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
background-repeat: no-repeat;
background-position: right 12px center;
padding-right: 32px;
transition: border-color 0.2s;
}
.sidebar-archive-dropdown .archive-select:focus {
outline: none;
border-color: var(--primary-accent, #00d4ff);
box-shadow: 0 0 0 2px rgba(0,212,255,0.15);
}
.sidebar-archive-dropdown .archive-select:disabled {
opacity: 0.4;
cursor: not-allowed;
}
.sidebar-archive-dropdown .archive-select option {
background: var(--surface-color, #1e2029);
color: var(--text-color, #e4e4e4);
}
html.light-mode .sidebar-archive-dropdown .archive-select {
background: #fff;
border-color: var(--border-color);
color: var(--text-color);
}
/* Archiv-Dropdown Widget Browser-Default überschreiben */
.single-sidebar .widget_archive select,
.single-sidebar .archive-select {
width: 100% !important;
padding: 9px 32px 9px 12px !important;
background-color: var(--surface-color, #1e2029) !important;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2300d4ff' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") !important;
background-repeat: no-repeat !important;
background-position: right 12px center !important;
border: 1px solid var(--border-color, #333) !important;
border-radius: 6px !important;
color: var(--text-color, #e4e4e4) !important;
font-family: 'Raleway', sans-serif !important;
font-size: 0.88rem !important;
cursor: pointer !important;
appearance: none !important;
-webkit-appearance: none !important;
-moz-appearance: none !important;
transition: border-color 0.2s, box-shadow 0.2s !important;
}
.single-sidebar .widget_archive select:focus,
.single-sidebar .archive-select:focus {
outline: none !important;
border-color: var(--primary-accent, #00d4ff) !important;
box-shadow: 0 0 0 2px rgba(0,212,255,0.15) !important;
}
.single-sidebar .widget_archive select option,
.single-sidebar .archive-select option {
background: var(--surface-color, #1e2029);
color: var(--text-color, #e4e4e4);
}
html.light-mode .single-sidebar .widget_archive select,
html.light-mode .single-sidebar .archive-select {
background-color: #fff !important;
border-color: var(--border-color) !important;
color: var(--text-color) !important;
}
/* FIX: Team-Seite Abstände oben/unten und content-area Grid deaktivieren */
.team-archive-container {
margin-top: 50px !important;
margin-bottom: 50px !important;
}
/* content-area Grid auf Team-Seite deaktivieren */
.page-template-archive-team .content-area,
body:has(.team-archive-container) .content-area {
display: block;
}
/* Fallback: site-main als container nutzt padding korrekt */
.container.site-main {
padding-top: 50px;
padding-bottom: 50px;
}
/* ==========================================================================
MENÜ-DESIGNS 4 Layouts
========================================================================== */
/* -----------------------------------------------------------------------
LAYOUT 2: ZENTRIERT
Logo + Icons in einer Zeile oben, Menü zentriert darunter
----------------------------------------------------------------------- */
.site-header--centered {
padding: 16px 0 0 0;
}
.header-centered-top {
display: flex;
align-items: center;
justify-content: space-between;
padding-bottom: 12px;
border-bottom: 1px solid rgba(255,255,255,0.08);
margin-bottom: 0;
}
.site-header--centered .site-branding {
flex: 1;
}
.header-centered-nav {
display: flex;
justify-content: center;
}
.site-header--centered .main-navigation {
justify-content: center;
}
.site-header--centered .primary-menu {
justify-content: center;
}
.site-header--centered .menu-toggle {
display: none;
}
@media (max-width: 768px) {
.site-header--centered .menu-toggle { display: flex; }
.site-header--centered .header-centered-nav { justify-content: flex-start; }
.header-centered-nav .primary-menu { flex-direction: column; }
}
/* -----------------------------------------------------------------------
LAYOUT 3: SIDEBAR-MENÜ Modern Dark Design
----------------------------------------------------------------------- */
.header-sidebar {
position: fixed;
top: 0;
left: -320px;
width: 300px;
height: 100vh;
background: linear-gradient(180deg, #1a1c24 0%, #14151a 100%);
border-right: 1px solid rgba(0, 212, 255, 0.2);
z-index: 2000;
transition: left 0.35s cubic-bezier(0.4, 0, 0.2, 1);
overflow-y: auto;
overflow-x: hidden;
box-shadow: 4px 0 30px rgba(0,0,0,0.5);
}
.header-sidebar.is-open {
left: 0;
}
.header-sidebar-inner {
padding: 0 0 40px 0;
display: flex;
flex-direction: column;
}
/* Branding im Sidebar */
.header-sidebar .site-branding {
padding: 28px 24px 24px;
border-bottom: 1px solid rgba(0,212,255,0.12);
background: rgba(0,212,255,0.04);
}
.header-sidebar .site-title a {
color: var(--primary-accent, #00d4ff) !important;
font-size: 1.1rem;
font-weight: 700;
letter-spacing: 0.03em;
text-decoration: none;
}
.header-sidebar .custom-logo {
max-height: 50px;
width: auto;
display: block;
margin-bottom: 8px;
}
/* Titel unter dem Logo immer anzeigen */
.header-sidebar .site-branding .site-title {
display: block !important;
margin: 0;
}
.header-sidebar .site-branding .custom-logo-link + .site-title,
.header-sidebar .site-branding .custom-logo + .site-title {
display: block !important;
}
/* Navigation im Sidebar */
.header-sidebar .main-navigation {
padding: 16px 0;
}
.header-sidebar .menu-toggle { display: none; }
.header-sidebar .primary-menu {
list-style: none;
padding: 0;
margin: 0;
flex-direction: column;
gap: 0;
}
.header-sidebar .primary-menu > li {
border-bottom: 1px solid rgba(255,255,255,0.04);
}
.header-sidebar .primary-menu > li > a {
display: flex;
align-items: center;
padding: 13px 24px;
color: var(--text-color, #e4e4e4) !important;
font-weight: 600;
font-size: 0.95rem;
text-decoration: none;
letter-spacing: 0.02em;
transition: background 0.2s, color 0.2s, padding-left 0.2s;
position: relative;
}
.header-sidebar .primary-menu > li > a::before {
content: none;
}
.header-sidebar .primary-menu > li > a:hover {
background: none;
color: var(--primary-accent, #00d4ff) !important;
padding-left: 30px;
}
.header-sidebar .primary-menu > li.current-menu-item > a {
background: none;
color: var(--primary-accent, #00d4ff) !important;
}
/* Sub-Menü im Sidebar */
.header-sidebar .sub-menu {
position: static !important;
opacity: 1 !important;
visibility: visible !important;
transform: none !important;
box-shadow: none !important;
background: rgba(0,0,0,0.2);
border: none;
padding: 6px 0;
min-width: auto;
border-top: none;
}
.header-sidebar .sub-menu li a {
padding: 9px 24px 9px 36px !important;
font-size: 0.88rem !important;
color: var(--text-muted, #a0a0a0) !important;
font-weight: 500 !important;
display: flex;
align-items: center;
gap: 8px;
}
.header-sidebar .sub-menu li a::before {
content: '';
color: var(--primary-accent, #00d4ff);
font-size: 1rem;
line-height: 1;
}
.header-sidebar .sub-menu li a:hover {
color: var(--primary-accent, #00d4ff) !important;
background: rgba(0,212,255,0.06) !important;
padding-left: 42px !important;
}
/* Icons (Suche + Social) im Sidebar */
.header-sidebar .header-info {
padding: 20px 24px;
border-top: 1px solid rgba(0,212,255,0.12);
margin-top: auto;
flex-direction: column;
align-items: flex-start;
gap: 16px;
background: rgba(0,212,255,0.03);
}
.header-sidebar .header-search { width: 100%; }
.header-sidebar .header-search-toggle { display: none; }
.header-sidebar .header-search-dropdown {
display: block !important;
position: static !important;
opacity: 1 !important;
visibility: visible !important;
transform: none !important;
background: none;
box-shadow: none;
border: none;
padding: 0;
width: 100%;
}
.header-sidebar .search-form-inner {
background: rgba(255,255,255,0.06) !important;
border: 1px solid rgba(255,255,255,0.1) !important;
border-radius: 6px;
}
.header-sidebar .social-links {
display: flex;
flex-wrap: wrap;
gap: 10px;
}
.header-sidebar .social-links a {
width: 36px;
height: 36px;
border-radius: 8px;
background: rgba(255,255,255,0.07);
border: 1px solid rgba(255,255,255,0.1);
display: flex;
align-items: center;
justify-content: center;
color: var(--text-muted, #a0a0a0);
transition: background 0.2s, color 0.2s, border-color 0.2s;
font-size: 0.9rem;
}
.header-sidebar .social-links a:hover {
background: var(--primary-accent, #00d4ff);
color: #fff;
border-color: var(--primary-accent, #00d4ff);
}
/* Schließen-Button */
.sidebar-menu-close {
position: absolute;
top: 20px;
right: 16px;
background: none;
border: none;
color: var(--text-muted, #a0a0a0);
width: 20px;
height: 20px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: color 0.2s;
font-size: 0.8rem;
opacity: 0.4;
z-index: 10;
padding: 0;
}
.sidebar-menu-close:hover {
color: var(--text-color);
opacity: 1;
}
/* Overlay */
.header-sidebar-overlay {
display: none;
position: fixed;
inset: 0;
background: rgba(0,0,0,0.6);
backdrop-filter: blur(2px);
z-index: 1999;
}
.header-sidebar-overlay.is-visible { display: block; }
/* Top-Bar im Sidebar-Layout */
.site-header--sidebar {
padding: 14px 0;
}
.site-header--sidebar .header-main {
gap: 16px;
}
.sidebar-menu-toggle {
background: rgba(255,255,255,0.06);
border: 1px solid rgba(255,255,255,0.12);
border-radius: 8px;
color: var(--text-color, #e4e4e4);
width: 42px;
height: 42px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
font-size: 1.1rem;
transition: background 0.2s, border-color 0.2s, color 0.2s;
flex-shrink: 0;
}
.sidebar-menu-toggle:hover {
background: rgba(0,212,255,0.12);
border-color: var(--primary-accent, #00d4ff);
color: var(--primary-accent, #00d4ff);
}
/* Light-Mode */
html.light-mode .header-sidebar {
background: linear-gradient(180deg, #f8f9fa 0%, #ffffff 100%);
border-right-color: rgba(0,160,200,0.2);
box-shadow: 4px 0 30px rgba(0,0,0,0.15);
}
html.light-mode .header-sidebar .primary-menu > li > a { color: var(--text-color) !important; }
html.light-mode .header-sidebar .primary-menu > li > a:hover { color: var(--primary-accent) !important; background: none; }
html.light-mode .header-sidebar .sub-menu { background: rgba(0,0,0,0.04); }
html.light-mode .header-sidebar .social-links a { background: rgba(0,0,0,0.05); border-color: rgba(0,0,0,0.1); }
html.light-mode .sidebar-menu-toggle { background: rgba(0,0,0,0.05); border-color: rgba(0,0,0,0.12); color: var(--text-color); }
/* -----------------------------------------------------------------------
LAYOUT 4: MEGA-MENÜ
Breite Dropdown-Panels mit Spalten
----------------------------------------------------------------------- */
.site-header--mega .mega-nav .sub-menu {
display: none;
position: fixed;
left: 0;
right: 0;
top: 100%;
background: var(--surface-color, #1e2029);
border-top: 2px solid var(--primary-accent, #00d4ff);
border-bottom: 1px solid var(--border-color);
padding: 30px 40px;
columns: 4;
column-gap: 30px;
z-index: 900;
box-shadow: 0 8px 30px rgba(0,0,0,0.3);
list-style: none;
margin: 0;
}
.site-header--mega .mega-nav > li:hover > .sub-menu,
.site-header--mega .mega-nav > li:focus-within > .sub-menu {
display: block;
}
.site-header--mega .mega-nav .sub-menu li {
break-inside: avoid;
margin-bottom: 8px;
}
.site-header--mega .mega-nav .sub-menu a {
display: flex;
align-items: center;
gap: 8px;
padding: 6px 10px;
border-radius: 4px;
color: var(--text-color);
font-weight: 500;
font-size: 0.9rem;
transition: background 0.15s, color 0.15s;
}
.site-header--mega .mega-nav .sub-menu a::before {
content: '';
width: 5px;
height: 5px;
border-radius: 50%;
background: var(--primary-accent, #00d4ff);
flex-shrink: 0;
}
.site-header--mega .mega-nav .sub-menu a:hover {
background: rgba(0,212,255,0.1);
color: var(--primary-accent, #00d4ff);
}
/* Mega-Menü Overlay */
.site-header--mega .mega-nav > li:hover::after {
content: '';
position: fixed;
inset: 0;
top: 100%;
z-index: -1;
}
/* Light-Mode Anpassungen */
html.light-mode .header-sidebar {
background: var(--surface-color);
border-right-color: var(--primary-accent);
}
html.light-mode .site-header--mega .mega-nav .sub-menu {
background: var(--surface-color);
border-color: var(--primary-accent);
}
/* FIX: Kein horizontaler Overflow NUR auf body, NICHT auf html!
overflow-x auf html verschiebt die gesamte Seite nach links */
body {
overflow-x: hidden;
}
/* ==========================================================================
MEGA-MENÜ Animated Underline + Active Dot Konzept
========================================================================== */
/* Etwas mehr Höhe als Classic */
.site-header--mega {
padding: 22px 0;
border-bottom: 1px solid rgba(255,255,255,0.06);
}
/* Menüpunkte: animierter Unterstrich */
.site-header--mega .mega-nav .primary-menu > li {
position: relative;
}
/* Aktiver Punkt: kleiner Dot oben */
.site-header--mega .mega-nav .primary-menu > li.current-menu-item::before,
.site-header--mega .mega-nav .primary-menu > li.current-menu-ancestor::before {
content: '';
position: absolute;
top: -8px;
left: 50%;
transform: translateX(-50%);
width: 6px;
height: 6px;
border-radius: 50%;
background: var(--primary-accent, #00d4ff);
box-shadow: 0 0 8px var(--primary-accent, #00d4ff);
}
.site-header--mega .mega-nav .primary-menu > li > a {
display: block;
padding: 8px 18px;
color: var(--text-color);
font-weight: 600;
font-size: 0.95rem;
text-decoration: none;
position: relative;
transition: color 0.2s;
}
/* Animierter Unterstrich */
.site-header--mega .mega-nav .primary-menu > li > a::after {
content: '';
position: absolute;
bottom: -2px;
left: 18px;
right: 18px;
height: 2px;
background: var(--primary-accent, #00d4ff);
transform: scaleX(0);
transform-origin: center;
transition: transform 0.25s ease;
border-radius: 2px;
}
.site-header--mega .mega-nav .primary-menu > li > a:hover {
color: var(--primary-accent, #00d4ff);
}
.site-header--mega .mega-nav .primary-menu > li > a:hover::after,
.site-header--mega .mega-nav .primary-menu > li.current-menu-item > a::after,
.site-header--mega .mega-nav .primary-menu > li.current-menu-ancestor > a::after {
transform: scaleX(1);
}
.site-header--mega .mega-nav .primary-menu > li.current-menu-item > a,
.site-header--mega .mega-nav .primary-menu > li.current-menu-ancestor > a {
color: var(--primary-accent, #00d4ff);
}
/* Untermenüs */
.site-header--mega .mega-nav .sub-menu {
position: absolute;
left: 0;
right: 0;
top: 100%;
display: none;
background: var(--surface-color, #1e2029);
border-top: 2px solid var(--primary-accent, #00d4ff);
padding: 24px 40px;
columns: 4;
column-gap: 30px;
z-index: 900;
box-shadow: 0 8px 30px rgba(0,0,0,0.3);
list-style: none;
margin: 0;
}
.site-header--mega .mega-nav > li:hover > .sub-menu,
.site-header--mega .mega-nav > li:focus-within > .sub-menu {
display: block;
}
.site-header--mega .mega-nav .sub-menu a {
display: block;
padding: 7px 10px;
color: var(--text-color);
font-size: 0.9rem;
border-radius: 4px;
transition: background 0.15s, color 0.15s;
}
.site-header--mega .mega-nav .sub-menu a:hover {
background: rgba(0,212,255,0.1);
color: var(--primary-accent, #00d4ff);
}
@media (max-width: 768px) {
.site-header--mega .mega-nav .primary-menu > li > a::after { display: none; }
.site-header--mega .mega-nav .primary-menu > li::before { display: none; }
}
/* FIX: Sidebar-Menü berücksichtigt die WordPress Admin-Bar */
.admin-bar .header-sidebar {
top: 32px;
height: calc(100vh - 32px);
}
@media screen and (max-width: 782px) {
.admin-bar .header-sidebar {
top: 46px;
height: calc(100vh - 46px);
}
}
/* Sidebar-Layout Top-Bar: Titel neben Logo anzeigen, aber nur wenn kein Logo vorhanden */
.site-header--sidebar .site-branding {
display: flex;
align-items: center;
gap: 10px;
}
.site-header--sidebar .site-branding .site-title {
margin: 0;
font-size: 1rem;
}
/* Wenn Logo da ist: Titel in Top-Bar trotzdem zeigen aber kleiner */
.site-header--sidebar .site-branding .custom-logo {
max-height: 40px;
width: auto;
margin-bottom: 0;
}
/* FORCE: Titel in Sidebar Top-Bar immer anzeigen, auch wenn Logo gesetzt */
.site-header--sidebar .site-branding .site-title,
.site-header--sidebar .site-branding p.site-title,
.site-header--sidebar .site-branding h1.site-title {
display: block !important;
clip: auto !important;
clip-path: none !important;
position: static !important;
width: auto !important;
height: auto !important;
overflow: visible !important;
font-size: 1rem !important;
margin: 0 !important;
}
/* Sidebar Top-Bar: Branding-Position Links */
.site-header--sidebar.branding-left .header-main {
justify-content: flex-start;
gap: 20px;
}
.site-header--sidebar.branding-left .header-info {
margin-left: auto;
}
/* Sidebar Top-Bar: Branding-Position Mitte (Standard) */
.site-header--sidebar.branding-center .header-main {
justify-content: space-between;
}
.site-header--sidebar.branding-center .site-branding {
position: absolute;
left: 50%;
transform: translateX(-50%);
}
/* Sidebar Top-Bar: Branding-Position Rechts */
.site-header--sidebar.branding-right .header-main {
justify-content: space-between;
}
.site-header--sidebar.branding-right .site-branding {
margin-left: auto;
margin-right: 20px;
}
/* FIX: Sidebar berücksichtigt die Announcement-Bar */
body.has-announcement .header-sidebar {
top: var(--announcement-height, 50px);
height: calc(100vh - var(--announcement-height, 50px));
}
.admin-bar body.has-announcement .header-sidebar,
.admin-bar.has-announcement .header-sidebar {
top: calc(32px + var(--announcement-height, 50px));
height: calc(100vh - 32px - var(--announcement-height, 50px));
}
/* FIX: Logo + Titel in Sidebar kleiner */
.header-sidebar .custom-logo {
max-height: 36px !important;
}
.header-sidebar .site-title a {
font-size: 0.95rem !important;
}
.header-sidebar .site-branding {
padding: 18px 20px 16px !important;
}
/* FIX: Suchfeld in Sidebar nicht abgeschnitten */
/* Sidebar: Social Icons und Suche aus der Sidebar selbst ausblenden */
.header-sidebar .header-info {
display: none !important;
}
/* Sidebar-Suche: Toggle verstecken, Formular direkt zeigen */
.header-sidebar .header-search {
width: 100%;
position: relative;
}
.header-sidebar .header-search-toggle {
display: none !important;
}
.header-sidebar .header-search-dropdown {
display: block !important;
opacity: 1 !important;
visibility: visible !important;
position: static !important;
transform: none !important;
box-shadow: none !important;
background: none !important;
padding: 0 !important;
border: none !important;
width: 100% !important;
pointer-events: all !important;
}
/* Single-Post: Titel zentriert */
.single-post .post-title {
text-align: center;
}
/* Post-Meta: nur so breit wie der Inhalt, zentriert */
.post-meta {
display: inline-flex !important;
width: auto !important;
max-width: 100% !important;
overflow: hidden !important;
justify-content: center !important;
}
/* Wrapper um die Meta-Leiste: zentriert ausrichten */
.single .post-content {
display: flex;
flex-direction: column;
align-items: stretch;
}
.single .post-meta {
align-self: center;
}
/* Ersten und letzten Item: äußere Border entfernen */
.post-meta-item:first-child { border-left: none; }
.post-meta-item:last-child { border-right: none; }
/* Titel neben Logo nur bei Centered und Sidebar */
.site-header--centered .site-branding,
.site-header--sidebar .site-branding {
display: flex;
align-items: center;
gap: 12px;
}
.site-header--centered .site-branding .site-title,
.site-header--sidebar .site-branding .site-title {
margin: 0;
font-size: 1.1rem;
font-weight: 700;
line-height: 1.2;
display: block !important;
clip: auto !important;
clip-path: none !important;
position: static !important;
width: auto !important;
height: auto !important;
overflow: visible !important;
}
.site-header--centered .site-branding .site-title a,
.site-header--sidebar .site-branding .site-title a {
color: var(--text-color);
text-decoration: none;
}
.site-header--centered .site-branding .site-title a:hover,
.site-header--sidebar .site-branding .site-title a:hover {
color: var(--primary-accent, #00d4ff);
}
/* ==========================================================================
MEGA-MENÜ Zweizeiliges Layout (Logo oben, Menü-Leiste darunter)
========================================================================== */
.site-header--mega {
padding: 0;
}
/* Zeile 1: Logo links, Icons rechts */
.header-mega-top {
display: flex;
align-items: center;
justify-content: space-between;
padding: 14px 0;
border-bottom: 1px solid rgba(255,255,255,0.06);
}
/* Zeile 2: Volle Breite, dunkler Streifen */
.header-mega-nav-bar {
background: rgba(0,0,0,0.25);
border-bottom: 2px solid var(--primary-accent, #00d4ff);
}
.site-header--mega .mega-nav {
width: 100%;
}
.site-header--mega .mega-nav .menu-toggle {
display: none;
}
.site-header--mega .mega-nav .primary-menu {
display: flex;
flex-wrap: wrap;
list-style: none;
margin: 0;
padding: 0;
gap: 0;
}
/* Menüpunkte */
.site-header--mega .mega-nav .primary-menu > li > a {
display: block;
padding: 13px 20px;
color: var(--text-color);
font-weight: 600;
font-size: 0.9rem;
text-decoration: none;
position: relative;
transition: color 0.2s, background 0.2s;
white-space: nowrap;
}
/* Hover: Akzentfarbe + Hintergrund */
.site-header--mega .mega-nav .primary-menu > li > a:hover {
color: var(--primary-accent, #00d4ff);
background: rgba(0,212,255,0.08);
}
/* Aktiver Punkt: Unterstrich */
.site-header--mega .mega-nav .primary-menu > li.current-menu-item > a,
.site-header--mega .mega-nav .primary-menu > li.current-menu-ancestor > a {
color: var(--primary-accent, #00d4ff);
background: rgba(0,212,255,0.08);
}
.site-header--mega .mega-nav .primary-menu > li.current-menu-item > a::after,
.site-header--mega .mega-nav .primary-menu > li.current-menu-ancestor > a::after {
content: '';
position: absolute;
bottom: -2px;
left: 0;
right: 0;
height: 2px;
background: var(--primary-accent, #00d4ff);
}
/* Untermenüs */
.site-header--mega .mega-nav .sub-menu {
position: absolute;
left: 0;
right: 0;
top: 100%;
display: none;
background: var(--surface-color, #1e2029);
border-top: 2px solid var(--primary-accent, #00d4ff);
padding: 24px 40px;
columns: 4;
column-gap: 30px;
z-index: 900;
box-shadow: 0 8px 30px rgba(0,0,0,0.3);
list-style: none;
margin: 0;
}
.site-header--mega .mega-nav > li:hover > .sub-menu,
.site-header--mega .mega-nav > li:focus-within > .sub-menu {
display: block;
}
.site-header--mega .mega-nav .sub-menu a {
display: block;
padding: 7px 10px;
color: var(--text-color);
font-size: 0.9rem;
border-radius: 4px;
transition: background 0.15s, color 0.15s;
}
.site-header--mega .mega-nav .sub-menu a:hover {
background: rgba(0,212,255,0.1);
color: var(--primary-accent, #00d4ff);
}
/* Responsive */
@media (max-width: 768px) {
.site-header--mega .mega-nav .menu-toggle { display: flex; }
.site-header--mega .mega-nav .primary-menu { flex-direction: column; }
.header-mega-nav-bar { background: transparent; border-bottom: none; }
}
html.light-mode .header-mega-nav-bar {
background: rgba(0,0,0,0.06);
}
/* Mega-Menü Top-Zeile: Branding korrekt anzeigen */
.header-mega-top .site-branding {
display: flex !important;
align-items: center;
gap: 12px;
}
.header-mega-top .site-branding .site-title,
.header-mega-top .site-branding p.site-title,
.header-mega-top .site-branding h1.site-title {
display: block !important;
clip: auto !important;
clip-path: none !important;
position: static !important;
width: auto !important;
height: auto !important;
overflow: visible !important;
font-size: 1.1rem !important;
margin: 0 !important;
white-space: nowrap;
}
/* ==========================================================================
BRANDING POSITION gilt NUR für Sidebar & Mega-Menü Top-Zeile
Classic hat feste Struktur (Logo links, Menü Mitte, Icons rechts)
Zentriert hat Logo+Icons oben Position gilt für die Top-Zeile
========================================================================== */
/* ── SIDEBAR ── */
.site-header--sidebar.branding-left .header-main { justify-content: flex-start; gap: 20px; }
.site-header--sidebar.branding-left .header-info { margin-left: auto; }
.site-header--sidebar.branding-center .header-main { justify-content: space-between; position: relative; }
.site-header--sidebar.branding-center .site-branding {
position: absolute; left: 50%; transform: translateX(-50%);
}
.site-header--sidebar.branding-right .header-main { justify-content: space-between; }
.site-header--sidebar.branding-right .site-branding { order: 3; margin-left: auto; }
.site-header--sidebar.branding-right .sidebar-menu-toggle { order: 1; }
.site-header--sidebar.branding-right .header-info { order: 2; }
/* ── MEGA-MENÜ Top-Zeile ── */
.site-header--mega.branding-left .header-mega-top { justify-content: space-between; }
.site-header--mega.branding-left .site-branding { margin-right: auto; }
.site-header--mega.branding-center .header-mega-top { justify-content: center; gap: 40px; }
.site-header--mega.branding-right .header-mega-top { justify-content: space-between; }
.site-header--mega.branding-right .site-branding { order: 2; margin-left: auto; }
.site-header--mega.branding-right .header-info { order: 1; }
/* ── ZENTRIERT Top-Zeile ── */
.site-header--centered.branding-left .header-centered-top { justify-content: space-between; }
.site-header--centered.branding-center .header-centered-top { justify-content: center; gap: 40px; }
.site-header--centered.branding-right .header-centered-top { justify-content: space-between; }
.site-header--centered.branding-right .site-branding { order: 2; margin-left: auto; }
.site-header--centered.branding-right .header-info { order: 1; }
/* Zentriert-Layout: Branding-Position */
.site-header--centered.branding-left .header-centered-top {
justify-content: space-between;
}
.site-header--centered.branding-left .site-branding {
position: static;
transform: none;
margin-right: auto;
order: 1;
}
.site-header--centered.branding-left .header-info { order: 2; }
.site-header--centered.branding-right .header-centered-top {
justify-content: space-between;
}
.site-header--centered.branding-right .site-branding {
position: static;
transform: none;
margin-left: auto;
order: 2;
}
.site-header--centered.branding-right .header-info { order: 1; }
.site-header--centered.branding-center .header-centered-top {
justify-content: center;
gap: 20px;
}
.site-header--centered.branding-center .site-branding {
position: static;
transform: none;
margin: 0;
order: 1;
}
.site-header--centered.branding-center .header-info { order: 2; }
/* Mega-Menü: Branding-Position */
.site-header--mega.branding-left .header-mega-top .site-branding { margin-right: auto; }
.site-header--mega.branding-right .header-mega-top .site-branding { margin-left: auto; order: 2; }
.site-header--mega.branding-right .header-mega-top .header-info { order: 1; }
.site-header--mega.branding-center .header-mega-top { justify-content: center; gap: 20px; }
/* ==========================================================================
CLASSIC LAYOUT Zweizeilig: Logo+Icons oben, Menü darunter
========================================================================== */
.site-header--classic {
padding: 0;
}
/* Zeile 1: Logo links, Icons rechts */
.header-classic-top {
display: flex;
align-items: center;
justify-content: space-between;
padding: 14px 0;
border-bottom: 1px solid rgba(255,255,255,0.06);
}
/* Zeile 2: Menü-Leiste */
.header-classic-nav-bar {
background: rgba(0,0,0,0.15);
border-bottom: 2px solid var(--primary-accent, #00d4ff);
}
.site-header--classic .main-navigation {
width: 100%;
}
.site-header--classic .main-navigation .menu-toggle {
display: none;
}
.site-header--classic .primary-menu {
display: flex;
flex-wrap: wrap;
list-style: none;
margin: 0;
padding: 0;
justify-content: center;
}
.site-header--classic .primary-menu > li > a {
display: block;
padding: 13px 18px;
color: var(--text-color);
font-weight: 600;
font-size: 0.9rem;
text-decoration: none;
position: relative;
transition: color 0.2s, background 0.2s;
white-space: nowrap;
}
.site-header--classic .primary-menu > li > a:hover {
color: var(--primary-accent, #00d4ff);
background: rgba(0,212,255,0.08);
}
.site-header--classic .primary-menu > li.current-menu-item > a,
.site-header--classic .primary-menu > li.current-menu-ancestor > a {
color: var(--primary-accent, #00d4ff);
}
.site-header--classic .primary-menu > li.current-menu-item > a::after,
.site-header--classic .primary-menu > li.current-menu-ancestor > a::after {
content: '';
position: absolute;
bottom: -2px;
left: 0;
right: 0;
height: 2px;
background: var(--primary-accent, #00d4ff);
}
/* Branding-Position in der Classic Top-Zeile */
.site-header--classic.branding-center .header-classic-top {
position: relative;
}
.site-header--classic.branding-center .site-branding {
position: absolute;
left: 50%;
transform: translateX(-50%);
}
.site-header--classic.branding-right .header-classic-top {
flex-direction: row-reverse;
}
/* Responsive */
@media (max-width: 768px) {
.site-header--classic .main-navigation .menu-toggle { display: flex; }
.site-header--classic .primary-menu { flex-direction: column; }
.header-classic-nav-bar { background: transparent; border-bottom: none; }
}
html.light-mode .header-classic-nav-bar {
background: rgba(0,0,0,0.04);
}
/* ==========================================================================
HEADER LAYOUTS Branding Positions (sauber, ohne Konflikte)
========================================================================== */
/* Gemeinsame Zeilen-Struktur */
.header-row {
display: flex;
align-items: center;
width: 100%;
}
.header-row-branding {
padding: 12px 0;
border-bottom: 1px solid rgba(255,255,255,0.06);
}
.header-row-nav {
padding: 4px 0;
}
.header-row-nav .main-navigation {
width: 100%;
}
.header-row-nav .primary-menu {
justify-content: center;
}
.header-row-nav .menu-toggle { display: none; }
/* Spacer dehnt sich aus und schiebt andere Elemente an die Enden */
.header-spacer {
flex: 1;
}
/* pos-center: Branding zentriert, Icons ganz rechts */
.header-row-branding.pos-center {
position: relative;
}
.header-row-branding.pos-center .site-branding {
position: absolute;
left: 50%;
transform: translateX(-50%);
}
.header-row-branding.pos-center .header-info {
margin-left: auto;
}
/* Sidebar: center spacer */
.header-center-spacer { flex: 1; }
.site-header--sidebar.branding-left .header-main .site-branding { margin: 0; }
.site-header--sidebar.branding-center .header-main .site-branding { margin: 0 auto; }
.site-header--sidebar.branding-right .header-main .site-branding { margin: 0; }
.site-header--sidebar .header-main .header-info { margin-left: 0; }
@media (max-width: 768px) {
.header-row-branding.pos-center .site-branding {
position: static;
transform: none;
margin: 0 auto;
}
.header-row-nav .menu-toggle { display: flex; }
.header-row-nav .primary-menu { flex-direction: column; }
}
/* Sidebar Top-Bar: header-main Layout fix */
.site-header--sidebar .header-main {
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
width: 100%;
}
/* Links: Hamburger | Logo+Titel | [spacer] | Icons */
.site-header--sidebar.branding-left .header-main .sidebar-menu-toggle { order: 1; }
.site-header--sidebar.branding-left .header-main .site-branding { order: 2; flex: 0 0 auto; }
.site-header--sidebar.branding-left .header-main .header-info { order: 3; margin-left: auto; }
/* Mitte: Hamburger | [spacer] | Logo+Titel | Icons */
.site-header--sidebar.branding-center .header-main { position: relative; }
.site-header--sidebar.branding-center .sidebar-menu-toggle { order: 1; }
.site-header--sidebar.branding-center .header-center-spacer { order: 2; flex: 1; }
.site-header--sidebar.branding-center .site-branding {
order: 3;
position: absolute;
left: 50%;
transform: translateX(-50%);
}
.site-header--sidebar.branding-center .header-info { order: 4; margin-left: auto; }
/* Rechts: Hamburger | [spacer] | Icons | Logo+Titel */
.site-header--sidebar.branding-right .header-main .sidebar-menu-toggle { order: 1; }
.site-header--sidebar.branding-right .header-main .header-info { order: 2; margin-left: auto; }
.site-header--sidebar.branding-right .header-main .site-branding { order: 3; flex: 0 0 auto; }
/* ==========================================================================
TEAM CARDS A+B Kombination: Banner + Avatar ragt raus
========================================================================== */
.team-grid {
display: grid !important;
grid-template-columns: repeat(3, 1fr) !important;
gap: 30px !important;
margin-top: 20px !important;
}
.team-card {
background: var(--card-bg) !important;
border: 1px solid var(--border-color) !important;
border-radius: 14px !important;
overflow: visible !important;
position: relative !important;
display: flex !important;
flex-direction: column !important;
align-items: center !important;
text-align: center !important;
padding: 0 0 28px !important;
margin-top: 45px !important;
transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease !important;
}
.team-card:hover {
transform: translateY(-6px) !important;
border-color: var(--primary-accent, #00d4ff) !important;
box-shadow: 0 16px 40px rgba(0,0,0,0.35), 0 0 20px rgba(0,212,255,0.1) !important;
}
/* Banner */
.team-card-banner {
width: 100%;
height: 90px;
border-radius: 13px 13px 0 0;
background: linear-gradient(135deg, #081e2d 0%, #0d3652 100%);
background-size: cover;
background-position: center;
flex-shrink: 0;
}
/* Avatar */
.team-image-wrapper {
width: 90px !important;
height: 90px !important;
border-radius: 50% !important;
border: 4px solid var(--card-bg) !important;
overflow: hidden !important;
background: var(--surface-color) !important;
margin-top: -45px !important;
position: relative !important;
z-index: 2 !important;
flex-shrink: 0 !important;
transition: transform 0.3s ease, box-shadow 0.3s ease !important;
}
.team-image-wrapper img {
width: 100% !important;
height: 100% !important;
object-fit: cover !important;
}
.team-card:hover .team-image-wrapper {
transform: scale(1.05) !important;
box-shadow: 0 0 0 3px var(--primary-accent, #00d4ff) !important;
}
/* Avatar Placeholder */
.team-avatar-placeholder {
width: 100% !important;
height: 100% !important;
display: flex !important;
align-items: center !important;
justify-content: center !important;
font-size: 2rem !important;
font-weight: 700 !important;
color: var(--primary-accent, #00d4ff) !important;
background: var(--surface-color) !important;
}
/* Info */
.team-info {
padding: 14px 20px 0 !important;
width: 100% !important;
display: flex !important;
flex-direction: column !important;
align-items: center !important;
}
.team-name {
font-size: 1.1rem !important;
font-weight: 700 !important;
color: var(--text-color) !important;
margin: 4px 0 10px !important;
}
.team-ranks-wrapper {
display: flex !important;
flex-wrap: wrap !important;
justify-content: center !important;
gap: 6px !important;
margin-bottom: 12px !important;
}
.team-rank {
display: inline-block !important;
background: rgba(0,212,255,0.1) !important;
color: var(--primary-accent, #00d4ff) !important;
border: 1px solid rgba(0,212,255,0.2) !important;
border-radius: 20px !important;
padding: 3px 12px !important;
font-size: 0.72rem !important;
font-weight: 700 !important;
text-transform: uppercase !important;
letter-spacing: 0.07em !important;
}
.team-bio {
font-size: 0.85rem !important;
color: var(--text-muted) !important;
line-height: 1.6 !important;
display: -webkit-box !important;
-webkit-line-clamp: 3 !important;
-webkit-box-orient: vertical !important;
overflow: hidden !important;
}
/* Light mode */
html.light-mode .team-card { background: #fff !important; border-color: var(--border-color) !important; }
html.light-mode .team-image-wrapper { border-color: #fff !important; }
/* Responsive */
@media (max-width: 600px) {
.team-grid { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)) !important; }
}
/* =============================================================
COOKIE-BANNER 4 Varianten (alle Layouts immer im DOM)
Sichtbar wird nur das passende .mmc-layout-* via CSS
============================================================= */
/* Alle Layout-Divs standardmäßig versteckt */
#mm-cookie-banner .mmc-layout-bar,
#mm-cookie-banner .mmc-layout-split,
#mm-cookie-banner .mmc-layout-slide,
#mm-cookie-banner .mmc-layout-stepper { display:none; }
/* Aktives Layout einblenden */
#mm-cookie-banner.mmc-style-bar .mmc-layout-bar { display:block; }
#mm-cookie-banner.mmc-style-split .mmc-layout-split { display:flex; }
#mm-cookie-banner.mmc-style-slide .mmc-layout-slide { display:flex; flex-direction:column; height:100%; }
#mm-cookie-banner.mmc-style-stepper .mmc-layout-stepper { display:flex; flex-direction:column; }
/* Overlay: nur bei stepper */
#mm-cookie-banner .mmc-overlay { display:none; position:absolute; inset:0; background:rgba(0,0,0,0.6); }
#mm-cookie-banner.mmc-style-stepper .mmc-overlay { display:block; }
/* Basis */
#mm-cookie-banner { position:fixed; z-index:99999; opacity:0; transition:opacity 0.4s ease,transform 0.4s ease; pointer-events:none; font-family:inherit; }
#mm-cookie-banner.mmc-visible { opacity:1; pointer-events:all; }
#mm-cookie-banner.mmc-hiding { opacity:0!important; pointer-events:none; }
/* Toggle */
.mmc-toggle { position:relative; display:inline-flex; width:44px; height:24px; flex-shrink:0; cursor:pointer; }
.mmc-toggle input { opacity:0; width:0; height:0; position:absolute; }
.mmc-knob { position:absolute; inset:0; background:rgba(255,255,255,0.1); border:1px solid var(--border-color); border-radius:24px; transition:background .25s,border-color .25s; }
.mmc-knob::before { content:''; position:absolute; width:18px; height:18px; left:2px; top:50%; transform:translateY(-50%); background:var(--text-muted); border-radius:50%; transition:transform .25s,background .25s; }
.mmc-toggle input:checked + .mmc-knob { background:var(--primary-accent); border-color:var(--primary-accent); }
.mmc-toggle input:checked + .mmc-knob::before { transform:translate(20px,-50%); background:#fff; }
/* Kategorien */
.mmc-cats { display:flex; flex-direction:column; gap:7px; }
.mmc-cat { background:rgba(255,255,255,0.04); border:1px solid var(--border-color); border-radius:8px; padding:10px 13px; }
.mmc-cat-row { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:4px; }
.mmc-cat-name { font-size:.83rem; font-weight:700; color:var(--text-color); display:flex; align-items:center; gap:7px; margin:0; cursor:default; }
.mmc-cat-name i { color:var(--primary-accent); font-size:.78rem; }
.mmc-cat-desc { font-size:.77rem; color:var(--text-muted); margin:0; line-height:1.5; }
.mmc-always { font-size:.7rem; color:#46b450; font-weight:600; background:rgba(70,180,80,0.12); padding:2px 8px; border-radius:20px; border:1px solid rgba(70,180,80,0.22); white-space:nowrap; }
/* Buttons */
.mmc-btn { display:inline-flex; align-items:center; justify-content:center; gap:6px; padding:10px 16px; border-radius:7px; font-family:inherit; font-size:.84rem; font-weight:600; cursor:pointer; border:1px solid transparent; transition:opacity .2s,transform .15s; white-space:nowrap; }
.mmc-btn:hover { transform:translateY(-1px); opacity:.9; }
.mmc-btn-accept { background:var(--primary-accent); color:#fff; border-color:var(--primary-accent); }
.mmc-btn-select { background:transparent; color:var(--primary-accent); border-color:var(--primary-accent); }
.mmc-btn-select:hover { background:rgba(0,212,255,0.08); }
.mmc-btn-neces { background:transparent; color:var(--text-muted); border-color:var(--border-color); }
.mmc-btn-neces:hover { color:var(--text-color); }
/* Privacy + Sonstiges */
.mmc-priv-link { color:var(--primary-accent); text-decoration:underline; font-weight:600; margin-left:4px; font-size:.85em; }
.mmc-settings-link { color:var(--primary-accent); cursor:pointer; text-decoration:underline; font-weight:600; }
.mmc-placeholder { width:100%; min-height:160px; background:var(--card-bg); border:1px dashed var(--border-color); border-radius:8px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; padding:24px; box-sizing:border-box; text-align:center; margin-bottom:16px; }
.mmc-placeholder i { font-size:1.8rem; color:var(--primary-accent); opacity:.4; }
.mmc-placeholder p { font-size:.83rem; color:var(--text-muted); margin:0; }
.mmc-ph-btn { padding:7px 14px; background:transparent; border:1px solid var(--primary-accent); color:var(--primary-accent); border-radius:6px; font-family:inherit; font-size:.8rem; font-weight:600; cursor:pointer; }
.mmc-ph-btn:hover { background:rgba(0,212,255,0.1); }
.mmc-preview-mode .mmc-btn, .mmc-preview-mode .mmc-toggle { pointer-events:none; }
html.light-mode .mmc-cat { background:rgba(0,0,0,0.03); }
html.light-mode .mmc-knob { background:rgba(0,0,0,0.08); }
/* ══════════════════════════════════════════════
VARIANTE 1: Schmale Bar (volle Breite, unten)
══════════════════════════════════════════════ */
#mm-cookie-banner.mmc-style-bar { left:0; right:0; bottom:0; transform:translateY(16px); }
#mm-cookie-banner.mmc-style-bar.mmc-visible { transform:translateY(0); }
#mm-cookie-banner.mmc-style-bar.mmc-hiding { transform:translateY(16px); }
.mmc-layout-bar { background:var(--card-bg); border-top:1px solid var(--border-color); padding:13px 24px; box-shadow:0 -4px 20px rgba(0,0,0,.2); }
.mmc-bar-wrap { max-width:1200px; margin:0 auto; display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.mmc-bar-icon { font-size:1.4rem; color:var(--primary-accent); flex-shrink:0; }
.mmc-bar-wrap .mmc-text { margin:0; font-size:.875rem; color:var(--text-muted); flex:1; min-width:180px; line-height:1.55; }
.mmc-bar-btns { display:flex; gap:8px; flex-shrink:0; }
#mm-cookie-banner.mmc-style-bar .mmc-btn { padding:8px 16px; }
html.light-mode .mmc-layout-bar { background:#fff; }
@media (max-width:600px) { .mmc-bar-wrap { flex-direction:column; align-items:flex-start; } .mmc-bar-btns { width:100%; } .mmc-bar-btns .mmc-btn { flex:1; } }
/* ══════════════════════════════════════════════
VARIANTE 2 (3A): Zweispaltig (volle Breite, unten)
══════════════════════════════════════════════ */
#mm-cookie-banner.mmc-style-split { left:0; right:0; bottom:0; transform:translateY(20px); }
#mm-cookie-banner.mmc-style-split.mmc-visible { transform:translateY(0); }
#mm-cookie-banner.mmc-style-split.mmc-hiding { transform:translateY(20px); }
.mmc-layout-split { background:var(--card-bg); border-top:1px solid var(--border-color); box-shadow:0 -6px 30px rgba(0,0,0,.25); max-height:90vh; overflow-y:auto; }
.mmc-split-left { background:rgba(0,0,0,0.2); padding:26px 24px; width:220px; flex-shrink:0; display:flex; flex-direction:column; gap:10px; border-right:1px solid var(--border-color); }
.mmc-split-icon { font-size:1.8rem; color:var(--primary-accent); }
.mmc-split-title { font-size:1rem; font-weight:700; margin:0; color:var(--text-color); }
.mmc-split-sub { font-size:.83rem; color:var(--text-muted); margin:0; line-height:1.65; flex:1; }
.mmc-split-priv { margin:0; }
.mmc-split-right { padding:26px 28px; flex:1; display:flex; flex-direction:column; gap:16px; }
.mmc-split-btns { display:flex; gap:10px; flex-wrap:wrap; }
.mmc-split-btns .mmc-btn { flex:1; min-width:100px; }
html.light-mode .mmc-layout-split { background:#fff; }
html.light-mode .mmc-split-left { background:rgba(0,0,0,0.04); }
@media (max-width:700px) { .mmc-layout-split { flex-direction:column!important; } .mmc-split-left { width:auto; border-right:none; border-bottom:1px solid var(--border-color); padding:18px; } .mmc-split-right { padding:18px; } }
/* ══════════════════════════════════════════════
VARIANTE 3 (3B): Slide-In von rechts
══════════════════════════════════════════════ */
#mm-cookie-banner.mmc-style-slide { top:0; right:0; bottom:0; width:340px; max-width:100vw; transform:translateX(100%); opacity:1; }
#mm-cookie-banner.mmc-style-slide.mmc-visible { transform:translateX(0); }
#mm-cookie-banner.mmc-style-slide.mmc-hiding { transform:translateX(100%); }
.mmc-layout-slide { height:100%; background:var(--card-bg); border-left:1px solid var(--border-color); box-shadow:-8px 0 40px rgba(0,0,0,.3); padding:28px 22px; overflow-y:auto; gap:14px; box-sizing:border-box; }
.mmc-slide-header { display:flex; align-items:center; gap:12px; }
.mmc-slide-icon { width:40px; height:40px; flex-shrink:0; background:rgba(0,212,255,0.1); border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:1.3rem; color:var(--primary-accent); }
.mmc-slide-title { font-size:1rem; font-weight:700; margin:0; color:var(--text-color); }
.mmc-slide-text { font-size:.83rem; color:var(--text-muted); margin:0; line-height:1.65; }
.mmc-slide-btns { display:flex; flex-direction:column; gap:8px; margin-top:auto; }
.mmc-slide-btns .mmc-btn { width:100%; }
html.light-mode .mmc-layout-slide { background:#fff; box-shadow:-8px 0 40px rgba(0,0,0,.1); }
@media (max-width:400px) { #mm-cookie-banner.mmc-style-slide { width:100vw; } }
/* ══════════════════════════════════════════════
VARIANTE 4 (3C): Stepper (zentriert, mit Overlay)
══════════════════════════════════════════════ */
#mm-cookie-banner.mmc-style-stepper { inset:0; display:flex; align-items:center; justify-content:center; padding:20px; transform:none; }
.mmc-layout-stepper { position:relative; z-index:1; width:100%; max-width:500px; background:var(--card-bg); border:1px solid var(--border-color); border-radius:16px; overflow:hidden; box-shadow:0 20px 60px rgba(0,0,0,.5); opacity:0; transform:translateY(20px); transition:opacity .4s ease,transform .4s ease; }
#mm-cookie-banner.mmc-style-stepper.mmc-visible .mmc-layout-stepper { opacity:1; transform:translateY(0); }
#mm-cookie-banner.mmc-style-stepper.mmc-hiding .mmc-layout-stepper { opacity:0; transform:translateY(20px); }
.mmc-steps { display:flex; border-bottom:1px solid var(--border-color); background:rgba(0,0,0,0.15); }
.mmc-step { flex:1; padding:11px 6px; text-align:center; font-size:.78rem; font-weight:600; color:var(--text-muted); display:flex; align-items:center; justify-content:center; gap:6px; position:relative; }
.mmc-step-num { width:20px; height:20px; border-radius:50%; background:rgba(255,255,255,0.08); display:inline-flex; align-items:center; justify-content:center; font-size:.72rem; font-weight:700; flex-shrink:0; }
.mmc-step-active { color:var(--primary-accent); }
.mmc-step-active .mmc-step-num { background:var(--primary-accent); color:#fff; }
.mmc-step-active::after { content:''; position:absolute; bottom:0; left:0; right:0; height:2px; background:var(--primary-accent); }
.mmc-step-done { color:#46b450; }
.mmc-step-done .mmc-step-num { background:rgba(70,180,80,0.2); color:#46b450; }
.mmc-stepper-body { padding:22px 24px; display:flex; flex-direction:column; gap:14px; }
.mmc-stepper-text { margin:0; font-size:.875rem; color:var(--text-muted); line-height:1.65; }
.mmc-stepper-btns { display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px; }
.mmc-stepper-btns .mmc-btn { padding:10px 8px; font-size:.8rem; }
html.light-mode .mmc-layout-stepper { background:#fff; }
html.light-mode .mmc-steps { background:rgba(0,0,0,0.03); }
@media (max-width:560px) { .mmc-stepper-btns { grid-template-columns:1fr; } .mmc-stepper-body { padding:18px; } #mm-cookie-banner.mmc-style-stepper { padding:12px; } }
/* =============================================================
VIDEO-MODUL
============================================================= */
/* ── Container (gleicher Stil wie .faq-archive-container) ── */
.video-archive-container {
background-color: var(--card-bg);
border-radius: 8px;
border: 1px solid var(--border-color);
padding: 50px;
margin-bottom: 30px;
margin-top: 40px;
}
/* ── Header ── */
.video-archive-container .page-header { text-align: center; margin-bottom: 40px; }
.video-archive-container .page-title { font-size: 2.5rem; color: var(--primary-accent); text-transform: uppercase; letter-spacing: 2px; margin-bottom: 10px; display: flex; align-items: center; justify-content: center; gap: 14px; }
.video-archive-container .page-title i { font-size: 2rem; }
.video-archive-container .page-description { font-size: 1.1rem; color: var(--text-muted); margin: 0; }
/* ── Filter-Bar ── */
.video-filter-bar { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; margin-top: 20px; }
.video-filter-btn { padding: 7px 20px; border-radius: 20px; border: 1px solid var(--border-color); background: transparent; color: var(--text-muted); font-family: inherit; font-size: 0.85rem; font-weight: 600; cursor: pointer; transition: all 0.2s ease; }
.video-filter-btn:hover { border-color: var(--primary-accent); color: var(--primary-accent); }
.video-filter-btn.active { background: var(--primary-accent); border-color: var(--primary-accent); color: #fff; }
/* ── Video Grid ── */
.video-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 22px; }
/* ── Video Card ── */
.video-card {
background: var(--surface-color, rgba(255,255,255,0.03));
border: 1px solid var(--border-color);
border-radius: 10px;
overflow: hidden;
transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
cursor: pointer;
}
.video-card:hover { transform: translateY(-4px); box-shadow: 0 10px 30px rgba(0,0,0,0.3); border-color: var(--primary-accent); }
/* Thumbnail */
.video-card-thumb { position: relative; aspect-ratio: 16/9; overflow: hidden; background: rgba(0,0,0,0.3); cursor: pointer; }
.video-card-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.3s ease; }
.video-card:hover .video-card-thumb img { transform: scale(1.05); }
.video-card-no-thumb { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; }
.video-card-no-thumb i { font-size: 2.5rem; color: var(--primary-accent); opacity: 0.25; }
/* Hover-Overlay */
.video-card-hover { position: absolute; inset: 0; background: rgba(0,0,0,0.4); display: flex; align-items: center; justify-content: center; opacity: 0; transition: opacity 0.2s ease; }
.video-card-thumb:hover .video-card-hover { opacity: 1; }
.video-card-hover i { font-size: 3rem; color: #fff; filter: drop-shadow(0 2px 6px rgba(0,0,0,0.5)); transition: transform 0.2s ease; }
.video-card-thumb:hover .video-card-hover i { transform: scale(1.1); }
/* Plattform-Badge */
.video-platform-badge { position: absolute; top: 8px; right: 8px; background: rgba(0,0,0,0.65); padding: 4px 8px; border-radius: 6px; font-size: 0.85rem; line-height: 1; backdrop-filter: blur(4px); }
/* Card Body */
.video-card-body { padding: 14px 16px; }
.video-card-title { font-size: 0.95rem; font-weight: 700; color: var(--text-color); margin: 0 0 6px; line-height: 1.4; }
.video-card-excerpt { font-size: 0.82rem; color: var(--text-muted); margin: 0 0 8px; line-height: 1.5; }
.video-card-tag { display: inline-block; font-size: 0.75rem; font-weight: 600; color: var(--primary-accent); background: rgba(0,212,255,0.1); border: 1px solid rgba(0,212,255,0.25); padding: 2px 10px; border-radius: 12px; }
/* ── Lightbox ── */
.video-lightbox { position: fixed; inset: 0; z-index: 99998; align-items: center; justify-content: center; padding: 20px; }
.video-lightbox-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,0.85); cursor: pointer; }
.video-lightbox-box { position: relative; z-index: 1; width: 100%; max-width: 900px; background: var(--card-bg); border-radius: 12px; overflow: hidden; border: 1px solid var(--border-color); box-shadow: 0 24px 80px rgba(0,0,0,0.6); opacity: 0; transform: scale(0.96); transition: opacity 0.3s ease, transform 0.3s ease; }
.video-lightbox.is-open .video-lightbox-box { opacity: 1; transform: scale(1); }
.video-lightbox-head { display: flex; align-items: center; justify-content: space-between; padding: 14px 18px; border-bottom: 1px solid var(--border-color); }
.video-lightbox-title { font-size: 1rem; font-weight: 700; color: var(--text-color); margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.video-lightbox-close { background: transparent; border: 1px solid var(--border-color); color: var(--text-muted); font-size: 1rem; cursor: pointer; padding: 5px 10px; border-radius: 6px; transition: all 0.2s; line-height: 1; }
.video-lightbox-close:hover { color: var(--text-color); border-color: var(--text-muted); background: rgba(255,255,255,0.06); }
.video-lightbox-player { aspect-ratio: 16/9; background: #000; }
.video-lightbox-player iframe,
.video-lightbox-player video { width: 100%; height: 100%; display: block; border: none; }
/* ── Leer-Zustand ── */
.video-empty { text-align: center; padding: 60px 20px; color: var(--text-muted); }
.video-empty i { font-size: 3rem; opacity: 0.25; display: block; margin-bottom: 16px; }
.video-empty p { font-size: 1.1rem; margin-bottom: 20px; }
/* ── Shortcode-Embed in Beiträgen ── */
.mm-video-wrapper { position: relative; aspect-ratio: 16/9; background: #000; border-radius: 10px; overflow: hidden; margin: 20px 0; border: 1px solid var(--border-color); }
.mm-video-wrapper iframe,
.mm-video-wrapper video { position: absolute; inset: 0; width: 100%; height: 100%; border: none; }
.mm-video-error { color: #ff6b6b; font-size: 0.9rem; padding: 12px; background: rgba(255,107,107,0.1); border-radius: 6px; border: 1px solid rgba(255,107,107,0.3); }
/* ── Light Mode ── */
html.light-mode .video-card { background: #fff; }
html.light-mode .video-lightbox-box { background: #fff; }
html.light-mode .video-card:hover { box-shadow: 0 10px 30px rgba(0,0,0,0.12); }
/* ── Responsive ── */
@media (max-width: 900px) { .video-archive-container { padding: 30px 20px; } }
@media (max-width: 768px) { .video-grid { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; } .video-archive-container .page-title { font-size: 1.8rem; } }
@media (max-width: 480px) { .video-grid { grid-template-columns: 1fr; } .video-lightbox { padding: 10px; } }
/* =============================================================
BEWERBUNGSFORMULAR
============================================================= */
.bewerbung-container {
background: var(--card-bg);
border-radius: 8px;
border: 1px solid var(--border-color);
padding: 50px;
margin: 40px 0 30px;
}
.bewerbung-container .page-header { text-align: center; margin-bottom: 40px; }
.bewerbung-container .page-title { font-size: 2.5rem; color: var(--primary-accent); text-transform: uppercase; letter-spacing: 2px; margin-bottom: 10px; display: flex; align-items: center; justify-content: center; gap: 14px; }
.bewerbung-container .page-title i { font-size: 2rem; }
.bewerbung-container .page-description { font-size: 1.1rem; color: var(--text-muted); margin: 0; }
/* Deaktiviert */
.bewerbung-disabled { text-align: center; padding: 60px 20px; color: var(--text-muted); }
.bewerbung-disabled i { font-size: 3rem; opacity: 0.25; display: block; margin-bottom: 16px; }
/* Formular */
.bewerbung-form { max-width: 760px; margin: 0 auto; }
.bew-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 20px; }
.bew-field--small { grid-column: span 1; }
.bew-field { display: flex; flex-direction: column; gap: 8px; margin-bottom: 20px; }
.bew-grid .bew-field { margin-bottom: 0; }
.bew-label { font-size: 0.9rem; font-weight: 700; color: var(--text-color); display: flex; align-items: center; gap: 8px; }
.bew-label i { color: var(--primary-accent); font-size: 0.85rem; width: 16px; text-align: center; }
.bew-required { color: var(--primary-accent); font-weight: 700; }
.bew-input,
.bew-textarea {
background: rgba(255,255,255,0.05);
border: 1px solid var(--border-color);
border-radius: 8px;
padding: 11px 14px;
color: var(--text-color);
font-family: inherit;
font-size: 0.9rem;
transition: border-color 0.2s ease, background 0.2s ease;
width: 100%;
box-sizing: border-box;
}
.bew-input:focus, .bew-textarea:focus {
outline: none;
border-color: var(--primary-accent);
background: rgba(0,212,255,0.04);
}
.bew-textarea { resize: vertical; min-height: 100px; line-height: 1.6; }
.bew-hint { font-size: 0.78rem; color: var(--text-muted); margin: 0; }
/* Minecraft Avatar neben Input */
.bew-mc-wrap { display: flex; gap: 10px; align-items: center; }
.bew-mc-wrap .bew-input { flex: 1; }
.bew-mc-avatar { width: 44px; height: 44px; border-radius: 6px; background: rgba(255,255,255,0.06); border: 1px solid var(--border-color); display: flex; align-items: center; justify-content: center; flex-shrink: 0; overflow: hidden; }
.bew-mc-avatar img { width: 100%; height: 100%; object-fit: cover; image-rendering: pixelated; }
.bew-mc-avatar i { color: var(--text-muted); font-size: 1.1rem; }
/* Zeichenzähler */
.bew-char-count { font-size: 0.75rem; color: var(--text-muted); text-align: right; }
/* Erfolg */
.bewerbung-success { display: flex; align-items: flex-start; gap: 16px; background: rgba(70,180,80,0.1); border: 1px solid rgba(70,180,80,0.35); border-radius: 10px; padding: 24px; color: var(--text-color); margin-bottom: 20px; }
.bewerbung-success i { font-size: 2rem; color: #46b450; flex-shrink: 0; margin-top: 2px; }
.bewerbung-success p { margin: 0; font-size: 1rem; line-height: 1.6; }
/* Fehler */
.bewerbung-error { display: flex; align-items: flex-start; gap: 12px; background: rgba(220,50,50,0.1); border: 1px solid rgba(220,50,50,0.35); border-radius: 8px; padding: 14px 16px; color: var(--text-color); margin-bottom: 20px; }
.bewerbung-error i { color: #dc3232; flex-shrink: 0; margin-top: 2px; }
/* Submit */
.bew-submit-wrap { display: flex; flex-direction: column; align-items: center; gap: 12px; margin-top: 10px; }
.bew-submit-btn {
display: inline-flex; align-items: center; gap: 10px;
padding: 14px 36px;
background: var(--primary-accent); color: #fff;
border: none; border-radius: 8px;
font-family: inherit; font-size: 1rem; font-weight: 700;
cursor: pointer;
transition: opacity 0.2s, transform 0.15s;
}
.bew-submit-btn:hover { opacity: 0.88; transform: translateY(-1px); }
.bew-submit-btn:disabled { opacity: 0.6; cursor: not-allowed; transform: none; }
.bew-submit-hint { font-size: 0.8rem; color: var(--text-muted); margin: 0; display: flex; align-items: center; gap: 6px; }
.bew-submit-hint i { color: var(--primary-accent); }
/* Light Mode */
html.light-mode .bewerbung-container { background: #fff; }
html.light-mode .bew-input,
html.light-mode .bew-textarea { background: #f8f8f8; }
html.light-mode .bew-input:focus,
html.light-mode .bew-textarea:focus { background: #fff; }
html.light-mode .bew-mc-avatar { background: #f0f0f0; }
/* Responsive */
@media (max-width: 700px) {
.bewerbung-container { padding: 28px 18px; }
.bew-grid { grid-template-columns: 1fr; }
.bewerbung-container .page-title { font-size: 1.8rem; }
}