/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.0.0
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* Add your custom styles here */

/**
 * BSV Timeline Styles v3
 * Alle Styles für die Aktuelles-Seite
 */

/* === Hero Section === */
.bsv-hero {
    background-color: #1B3A5C !important;
    padding: 80px 30px !important;
    text-align: center;
}

.bsv-hero h1,
.bsv-hero .elementor-heading-title {
    color: #FFFFFF !important;
    font-size: 42px;
    margin-bottom: 20px;
}

.bsv-hero .elementor-widget-text-editor {
    color: #FFFFFF;
}

.bsv-hero-text {
    color: #FFFFFF !important;
    font-size: 18px;
    max-width: 700px;
    margin: 0 auto;
    line-height: 1.6;
}

/* === Timeline Section === */
.bsv-timeline {
    background-color: #F4F6F8 !important;
    padding: 60px 30px !important;
}

/* Grid Layout — höhere Specificity gegen Elementor */
.bsv-timeline .bsv-timeline-grid {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 30px !important;
    max-width: 1200px;
    margin: 0 auto;
}

@media (max-width: 768px) {
    .bsv-timeline .bsv-timeline-grid {
        grid-template-columns: 1fr !important;
        gap: 20px !important;
    }
}

/* === Timeline Cards === */
.bsv-timeline-grid .bsv-card {
    background: #FFFFFF;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    display: flex;
    flex-direction: column;
}

.bsv-timeline-grid .bsv-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.bsv-timeline-grid .bsv-card-image {
    width: 100%;
    height: 220px;
    object-fit: cover;
    display: block;
}

.bsv-timeline-grid .bsv-card-content {
    padding: 25px;
    flex: 1;
    display: flex;
    flex-direction: column;
}

/* === Badges === */
.bsv-badge {
    display: inline-block;
    width: auto;
    max-width: fit-content;
    font-family: 'Montserrat', sans-serif;
    font-size: 11px;
    font-weight: 600;
    padding: 5px 12px;
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
}

.bsv-badge-beitrag {
    background-color: #1B3A5C;
    color: #FFFFFF;
}

.bsv-badge-termin {
    background-color: #D32F2F;
    color: #FFFFFF;
}

/* === Card Content === */
.bsv-timeline-grid .bsv-card h3 {
    color: #2C3E50;
    font-size: 20px;
    margin: 0 0 10px 0;
    line-height: 1.3;
    font-weight: 600;
}

.bsv-timeline-grid .bsv-card-date {
    color: #2980B9;
    font-size: 14px;
    font-weight: 600;
    margin: 0 0 12px 0;
}

.bsv-timeline-grid .bsv-card-text {
    color: #555555;
    font-size: 15px;
    line-height: 1.6;
    margin: 0;
}

/* === Responsive === */
@media (max-width: 1024px) {
    .bsv-hero h1,
    .bsv-hero .elementor-heading-title {
        font-size: 36px;
    }
    
    .bsv-timeline {
        padding: 50px 20px !important;
    }
}

@media (max-width: 768px) {
    .bsv-hero {
        padding: 60px 20px !important;
    }
    
    .bsv-hero h1,
    .bsv-hero .elementor-heading-title {
        font-size: 28px;
    }
    
    .bsv-hero-text {
        font-size: 16px;
    }
    
    .bsv-timeline-grid .bsv-card-image {
        height: 180px;
    }
    
    .bsv-timeline-grid .bsv-card-content {
        padding: 20px;
    }
    
    .bsv-timeline-grid .bsv-card h3 {
        font-size: 18px;
    }
}

/* === WordPress Seitentitel ausblenden (Elementor-Seiten haben eigene Titel) === */
.page .entry-title,
.page .page-title,
.elementor-page .entry-title,
.elementor-page .page-header {
    display: none;
}

/* === The Events Calendar — BSV Styling === */

/* Suchleiste & Navigation */
.tribe-events .tribe-events-header {
    margin-bottom: 30px;
}

.tribe-events .tribe-events-c-events-bar {
    background: #FFFFFF;
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    padding: 15px 20px;
    margin-bottom: 25px;
}

.tribe-events .tribe-events-c-events-bar__search-button {
    background-color: #1B3A5C !important;
    border-radius: 8px !important;
}

.tribe-events .tribe-events-c-events-bar__search-button:hover {
    background-color: #2980B9 !important;
}

/* View-Tabs (Liste / Monat / Tag) */
.tribe-events .tribe-events-c-view-selector__list-item--active .tribe-events-c-view-selector__list-item-link {
    color: #1B3A5C !important;
    border-bottom: 2px solid #D32F2F;
}

.tribe-events .tribe-events-c-view-selector__list-item-link:hover {
    color: #1B3A5C !important;
}

/* Navigation (Pfeile, "Heute"-Button) */
.tribe-events .tribe-events-c-top-bar__today-button {
    border-color: #1B3A5C !important;
    color: #1B3A5C !important;
    border-radius: 6px !important;
}

.tribe-events .tribe-events-c-top-bar__today-button:hover {
    background-color: #1B3A5C !important;
    color: #FFFFFF !important;
}

.tribe-events .tribe-events-c-top-bar__nav-link {
    color: #1B3A5C !important;
}

/* Monats-Überschrift */
.tribe-events .tribe-events-c-top-bar__datepicker-button {
    color: #2C3E50 !important;
    font-weight: 600;
}

/* === Listenansicht === */

/* Monatsgruppen-Header */
.tribe-events .tribe-events-calendar-list__month-separator-text {
    color: #1B3A5C !important;
    font-weight: 700;
    font-size: 20px;
}

.tribe-events .tribe-events-calendar-list__month-separator::after {
    background-color: #D32F2F !important;
}

/* Event-Einträge */
.tribe-events .tribe-events-calendar-list__event {
    background: #FFFFFF;
    border-radius: 12px;
    padding: 25px 30px;
    margin-bottom: 15px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    border-left: 4px solid #D32F2F;
}

.tribe-events .tribe-events-calendar-list__event:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
}

/* Datum-Spalte */
.tribe-events .tribe-events-calendar-list__event-date-tag-weekday {
    color: #999;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.tribe-events .tribe-events-calendar-list__event-date-tag-daynum {
    color: #D32F2F !important;
    font-size: 36px !important;
    font-weight: 700 !important;
}

/* Event-Titel */
.tribe-events .tribe-events-calendar-list__event-title a {
    color: #2C3E50 !important;
    text-decoration: none !important;
    font-weight: 600;
}

.tribe-events .tribe-events-calendar-list__event-title a:hover {
    color: #1B3A5C !important;
}

/* Event-Datum/Uhrzeit */
.tribe-events .tribe-events-calendar-list__event-datetime {
    color: #2980B9 !important;
    font-weight: 500;
}

/* Venue */
.tribe-events .tribe-events-calendar-list__event-venue {
    color: #777 !important;
}

/* Beschreibung */
.tribe-events .tribe-events-calendar-list__event-description {
    color: #555;
    line-height: 1.6;
}

/* === Monatsansicht (Kalender) === */

/* Kalender-Container */
.tribe-events .tribe-events-calendar-month {
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

/* Wochentag-Header */
.tribe-events .tribe-events-calendar-month__header-column-title {
    color: #1B3A5C !important;
    font-weight: 600;
    text-transform: uppercase;
    font-size: 13px;
    letter-spacing: 1px;
}

/* Kalender-Tage */
.tribe-events .tribe-events-calendar-month__day {
    border-color: #E8ECF0 !important;
    transition: background-color 0.2s ease;
}

.tribe-events .tribe-events-calendar-month__day:hover {
    background-color: #F4F6F8 !important;
}

/* Heutiger Tag */
.tribe-events .tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date-daynum {
    background-color: #1B3A5C !important;
    color: #FFFFFF !important;
    border-radius: 50%;
    padding: 4px 8px;
}

/* Tage mit Events */
.tribe-events .tribe-events-calendar-month__calendar-event-title a {
    color: #D32F2F !important;
    font-weight: 600;
    font-size: 12px;
}

.tribe-events .tribe-events-calendar-month__calendar-event-title a:hover {
    color: #1B3A5C !important;
}

/* Event-Zeit im Kalender */
.tribe-events .tribe-events-calendar-month__calendar-event-datetime {
    color: #2980B9;
    font-size: 11px;
}

/* Multiday Events */
.tribe-events .tribe-events-calendar-month__multiday-event-bar-inner {
    background-color: #D32F2F !important;
    border-radius: 4px;
}

/* === Footer Navigation === */
.tribe-events .tribe-events-c-nav__prev a,
.tribe-events .tribe-events-c-nav__next a {
    color: #1B3A5C !important;
    text-transform: uppercase;
    font-size: 13px;
    letter-spacing: 1px;
    font-weight: 600;
}

.tribe-events .tribe-events-c-nav__prev a:hover,
.tribe-events .tribe-events-c-nav__next a:hover {
    color: #D32F2F !important;
}

/* Kalender abonnieren Button */
.tribe-events .tribe-events-c-subscribe-dropdown__button {
    border-color: #1B3A5C !important;
    color: #1B3A5C !important;
    border-radius: 8px !important;
    font-weight: 600;
}

.tribe-events .tribe-events-c-subscribe-dropdown__button:hover {
    background-color: #1B3A5C !important;
    color: #FFFFFF !important;
}

/* === Allgemeines === */

/* Content-Bereich breiter machen */
.tribe-events {
    max-width: 1200px !important;
    margin: 0 auto !important;
    padding: 40px 30px !important;
}

/* Page-Title ausblenden (haben eigene Hero) */
.post-type-archive-tribe_events .entry-title,
.post-type-archive-tribe_events .page-title {
    display: none;
}

/* Links global */
.tribe-events a {
    transition: color 0.2s ease;
}

/* === Responsive === */
@media (max-width: 768px) {
    .tribe-events {
        padding: 20px 15px !important;
    }
    
    .tribe-events .tribe-events-calendar-list__event {
        padding: 20px;
        border-radius: 10px;
    }
    
    .tribe-events .tribe-events-calendar-list__event-date-tag-daynum {
        font-size: 28px !important;
    }
    
    .tribe-events .tribe-events-c-events-bar {
        padding: 10px 15px;
    }
}

/* === Events-Seiten Hintergrund === */
.post-type-archive-tribe_events,
.single-tribe_events {
    background-color: #F4F6F8;
}

/* === Events Hero Banner === */
.post-type-archive-tribe_events .site-main {
    padding-top: 0 !important;
}

.post-type-archive-tribe_events .tribe-events::before {
    content: 'Termine & Veranstaltungen';
    display: block;
    background-color: #1B3A5C;
    color: #FFFFFF;
    font-family: 'Montserrat', sans-serif;
    font-size: 42px;
    font-weight: 600;
    text-align: center;
    padding: 80px 30px 80px;
    margin: 0;
    width: 100vw;
    max-width: 100vw;
    box-sizing: border-box;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
}

/* After-Element entfernen falls noch vorhanden */
.post-type-archive-tribe_events .tribe-events::after {
    display: none;
}

@media (max-width: 768px) {
    .post-type-archive-tribe_events .tribe-events::before {
        font-size: 28px;
        padding: 60px 20px;
    }
}

/* Abstand Hero zu Content */
.post-type-archive-tribe_events .tribe-events {
    padding-top: 0 !important;
}

.post-type-archive-tribe_events .tribe-events .tribe-events-l-container {
    padding-top: 30px;
}

/* === Kalender Monatskacheln weiß === */
.tribe-events .tribe-events-calendar-month__day {
    background-color: #FFFFFF !important;
}

.tribe-events .tribe-events-calendar-month__day--past {
    background-color: #FAFAFA !important;
}

.tribe-events .tribe-events-calendar-month__header-column {
    background-color: #FFFFFF !important;
}

.tribe-events .tribe-events-calendar-month {
    background-color: #FFFFFF !important;
}

/* === Unterseiten-Layout (Gastlieger, Verein, etc.) === */
.bsv-page-section {
    background-color: #F4F6F8 !important;
    padding: 60px 30px !important;
}

.bsv-page-content {
    max-width: 1200px;
    margin: 0 auto;
}

/* Intro-Text */
.bsv-intro-text {
    max-width: 900px;
    margin: 0 auto 40px;
    text-align: center;
}

.bsv-intro-text p {
    color: #555;
    font-size: 16px;
    line-height: 1.7;
    margin-bottom: 15px;
}

/* === Info-Grid (2x2 Karten) === */
.bsv-info-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 25px;
    margin-bottom: 50px;
}

@media (max-width: 768px) {
    .bsv-info-grid {
        grid-template-columns: 1fr;
    }
}

.bsv-info-card {
    background: #FFFFFF;
    border-radius: 12px;
    padding: 30px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.bsv-info-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
}

.bsv-info-card-highlight {
    border-left: 4px solid #D32F2F;
}

.bsv-info-icon {
    font-size: 36px;
    margin-bottom: 15px;
}

.bsv-info-card h3 {
    color: #1B3A5C;
    font-size: 20px;
    font-weight: 600;
    margin: 0 0 15px 0;
}

.bsv-info-card p {
    color: #555;
    font-size: 15px;
    line-height: 1.6;
    margin: 0 0 10px 0;
}

.bsv-info-detail {
    margin-bottom: 8px !important;
}

.bsv-info-detail strong {
    color: #2C3E50;
}

/* Info-Liste */
.bsv-info-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.bsv-info-list li {
    color: #555;
    font-size: 15px;
    line-height: 1.6;
    padding: 8px 0;
    border-bottom: 1px solid #F0F0F0;
}

.bsv-info-list li:last-child {
    border-bottom: none;
}

.bsv-info-list li strong {
    color: #1B3A5C;
}

/* === Gebührentabelle === */
.bsv-gebuehren {
    background: #FFFFFF;
    border-radius: 12px;
    padding: 40px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
    margin-bottom: 50px;
}

.bsv-gebuehren h2 {
    color: #1B3A5C;
    font-size: 24px;
    font-weight: 600;
    margin: 0 0 10px 0;
}

.bsv-gebuehren-info {
    color: #2980B9;
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 25px;
}

.bsv-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 15px;
}

.bsv-table thead th {
    background-color: #1B3A5C;
    color: #FFFFFF;
    font-weight: 600;
    padding: 12px 20px;
    text-align: left;
}

.bsv-table thead th:first-child {
    border-radius: 8px 0 0 0;
}

.bsv-table thead th:last-child {
    border-radius: 0 8px 0 0;
}

.bsv-table tbody td {
    padding: 12px 20px;
    border-bottom: 1px solid #F0F0F0;
    color: #2C3E50;
}

.bsv-table tbody tr:hover {
    background-color: #F8F9FA;
}

.bsv-table tbody tr:last-child td:first-child {
    border-radius: 0 0 0 8px;
}

.bsv-table tbody tr:last-child td:last-child {
    border-radius: 0 0 8px 0;
}

.bsv-table-note {
    color: #999;
    font-size: 13px;
    margin-top: 15px;
    font-style: italic;
}

/* === Hinweise-Grid === */
.bsv-hinweise {
    margin-bottom: 50px;
}

.bsv-hinweise h2 {
    color: #1B3A5C;
    font-size: 24px;
    font-weight: 600;
    margin: 0 0 25px 0;
}

.bsv-hinweise-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

@media (max-width: 768px) {
    .bsv-hinweise-grid {
        grid-template-columns: 1fr;
    }
}

.bsv-hinweis-item {
    background: #FFFFFF;
    border-radius: 10px;
    padding: 20px 25px;
    display: flex;
    gap: 15px;
    align-items: flex-start;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.bsv-hinweis-icon {
    font-size: 28px;
    flex-shrink: 0;
}

.bsv-hinweis-item strong {
    color: #2C3E50;
    font-size: 15px;
    display: block;
    margin-bottom: 5px;
}

.bsv-hinweis-item p {
    color: #555;
    font-size: 14px;
    line-height: 1.5;
    margin: 0;
}

/* === Telefon-Grid === */
.bsv-telefon h2 {
    color: #1B3A5C;
    font-size: 24px;
    font-weight: 600;
    margin: 0 0 25px 0;
}

.bsv-telefon-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
}

@media (max-width: 1024px) {
    .bsv-telefon-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .bsv-telefon-grid {
        grid-template-columns: 1fr;
    }
}

.bsv-telefon-item {
    background: #FFFFFF;
    border-radius: 10px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 5px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.bsv-telefon-item strong {
    color: #1B3A5C;
    font-size: 14px;
}

.bsv-telefon-item span {
    color: #2C3E50;
    font-size: 16px;
    font-weight: 600;
}

/* === Responsive Tabelle === */
@media (max-width: 768px) {
    .bsv-gebuehren {
        padding: 25px 20px;
    }
    
    .bsv-table {
        font-size: 14px;
    }
    
    .bsv-table thead th,
    .bsv-table tbody td {
        padding: 10px 12px;
    }
}

/* === Verein-Seite === */

/* Section-Titel */
.bsv-section-title {
    color: #1B3A5C;
    font-size: 28px;
    font-weight: 600;
    margin: 50px 0 10px;
    text-align: center;
}

.bsv-section-subtitle {
    color: #999;
    font-size: 14px;
    text-align: center;
    margin-bottom: 30px;
}

/* === Vorstand-Grid === */
.bsv-vorstand-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin-bottom: 20px;
}

@media (max-width: 768px) {
    .bsv-vorstand-grid {
        grid-template-columns: 1fr;
    }
}

.bsv-person-card {
    background: #FFFFFF;
    border-radius: 12px;
    padding: 25px;
    display: flex;
    gap: 20px;
    align-items: flex-start;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.bsv-person-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
}

.bsv-person-card-vorsitz {
    grid-column: 1 / -1;
    border-left: 4px solid #D32F2F;
}

@media (max-width: 768px) {
    .bsv-person-card-vorsitz {
        grid-column: auto;
    }
}

.bsv-person-photo {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
    object-fit: cover;
}

.bsv-person-placeholder {
    background: #E8ECF0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 36px;
}

.bsv-person-info {
    flex: 1;
}

.bsv-person-role {
    display: inline-block;
    background-color: #1B3A5C;
    color: #FFFFFF;
    font-family: 'Montserrat', sans-serif;
    font-size: 11px;
    font-weight: 600;
    padding: 4px 10px;
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 8px;
}

.bsv-person-card h3 {
    color: #2C3E50;
    font-size: 18px;
    font-weight: 600;
    margin: 5px 0 8px;
}

.bsv-person-contact {
    color: #555;
    font-size: 14px;
    margin: 3px 0;
}

.bsv-person-detail {
    color: #999;
    font-size: 13px;
    margin: 5px 0 0;
}

/* Weitere Personen */
.bsv-weitere-personen {
    display: flex;
    gap: 15px;
    flex-wrap: wrap;
    justify-content: center;
    margin-bottom: 50px;
}

.bsv-person-mini {
    background: #FFFFFF;
    border-radius: 8px;
    padding: 12px 20px;
    font-size: 14px;
    color: #555;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
}

.bsv-person-mini strong {
    color: #1B3A5C;
}

/* === Sitzungen === */
.bsv-sitzungen {
    max-width: 700px;
    margin: 0 auto 50px;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.bsv-sitzung-item {
    background: #FFFFFF;
    border-radius: 10px;
    padding: 20px 25px;
    display: flex;
    gap: 20px;
    align-items: center;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
    border-left: 4px solid #D32F2F;
}

.bsv-sitzung-date {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 50px;
}

.bsv-sitzung-day {
    font-size: 28px;
    font-weight: 700;
    color: #D32F2F;
    line-height: 1;
}

.bsv-sitzung-month {
    font-size: 13px;
    font-weight: 600;
    color: #999;
    text-transform: uppercase;
}

.bsv-sitzung-info strong {
    color: #2C3E50;
    font-size: 16px;
    display: block;
    margin-bottom: 4px;
}

.bsv-sitzung-info p {
    color: #2980B9;
    font-size: 14px;
    margin: 0;
}

/* === Geschichte-Teaser === */
.bsv-history-teaser {
    background: #FFFFFF;
    border-radius: 12px;
    padding: 40px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
    margin-bottom: 40px;
    border-left: 4px solid #1B3A5C;
}

.bsv-history-teaser h2 {
    color: #1B3A5C;
    font-size: 24px;
    margin: 0 0 15px;
}

.bsv-history-teaser p {
    color: #555;
    font-size: 15px;
    line-height: 1.7;
    margin-bottom: 15px;
}

.bsv-link-button {
    display: inline-block;
    color: #1B3A5C;
    font-weight: 600;
    font-size: 15px;
    text-decoration: none;
    padding: 8px 0;
    border-bottom: 2px solid #D32F2F;
    transition: color 0.2s ease;
}

.bsv-link-button:hover {
    color: #D32F2F;
}

/* === CTA Box (Mitglied werden) === */
.bsv-cta-box {
    background: #1B3A5C;
    border-radius: 12px;
    padding: 50px 40px;
    text-align: center;
}

.bsv-cta-box h2 {
    color: #FFFFFF;
    font-size: 28px;
    margin: 0 0 15px;
}

.bsv-cta-box p {
    color: rgba(255, 255, 255, 0.85);
    font-size: 16px;
    line-height: 1.6;
    max-width: 700px;
    margin: 0 auto 15px;
}

.bsv-cta-buttons {
    display: flex;
    gap: 15px;
    justify-content: center;
    margin-top: 25px;
    flex-wrap: wrap;
}

.bsv-btn {
    display: inline-block;
    padding: 12px 30px;
    border-radius: 8px;
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.3s ease;
}

.bsv-btn-primary {
    background: #D32F2F;
    color: #FFFFFF;
}

.bsv-btn-primary:hover {
    background: #B71C1C;
    color: #FFFFFF;
}

.bsv-btn-secondary {
    background: transparent;
    color: #FFFFFF;
    border: 2px solid rgba(255, 255, 255, 0.5);
}

.bsv-btn-secondary:hover {
    border-color: #FFFFFF;
    background: rgba(255, 255, 255, 0.1);
    color: #FFFFFF;
}

@media (max-width: 768px) {
    .bsv-cta-box {
        padding: 35px 25px;
    }
    
    .bsv-section-title {
        font-size: 24px;
    }
}

/* === Jugend-Seite === */

/* Welcome-Section (Text + Bild nebeneinander) */
.bsv-jugend-welcome {
    display: flex;
    gap: 40px;
    align-items: center;
    margin-bottom: 50px;
    background: #FFFFFF;
    border-radius: 12px;
    padding: 40px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
}

@media (max-width: 768px) {
    .bsv-jugend-welcome {
        flex-direction: column;
        padding: 30px 25px;
    }
}

.bsv-jugend-welcome-text {
    flex: 1;
}

.bsv-jugend-welcome-text h2 {
    color: #1B3A5C;
    font-size: 26px;
    margin: 0 0 15px;
}

.bsv-jugend-welcome-text p {
    color: #555;
    font-size: 16px;
    line-height: 1.7;
    margin-bottom: 15px;
}

.bsv-jugend-kontakt {
    background: #F4F6F8;
    border-radius: 8px;
    padding: 15px 20px;
    margin-top: 20px;
    border-left: 3px solid #D32F2F;
}

.bsv-jugend-kontakt-label {
    display: block;
    font-size: 12px;
    color: #999;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 5px;
}

.bsv-jugend-kontakt strong {
    color: #2C3E50;
    font-size: 16px;
}

.bsv-jugend-kontakt p {
    color: #2980B9;
    font-size: 15px;
    font-weight: 600;
    margin: 5px 0 0;
}

.bsv-jugend-welcome-img {
    flex-shrink: 0;
    width: 250px;
}

.bsv-welcome-photo {
    width: 100%;
    border-radius: 12px;
    object-fit: cover;
}

@media (max-width: 768px) {
    .bsv-jugend-welcome-img {
        width: 100%;
    }
}

/* === Ausbildung-Grid === */
.bsv-ausbildung-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 25px;
    margin-bottom: 50px;
}

@media (max-width: 768px) {
    .bsv-ausbildung-grid {
        grid-template-columns: 1fr;
    }
}

.bsv-ausbildung-card {
    background: #FFFFFF;
    border-radius: 12px;
    padding: 30px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.bsv-ausbildung-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
}

.bsv-ausbildung-icon {
    font-size: 40px;
    margin-bottom: 15px;
}

.bsv-ausbildung-card h3 {
    color: #1B3A5C;
    font-size: 20px;
    font-weight: 600;
    margin: 0 0 12px;
}

.bsv-ausbildung-card p {
    color: #555;
    font-size: 15px;
    line-height: 1.6;
    margin: 0 0 15px;
}

.bsv-ausbildung-meta {
    display: inline-block;
    background: #F4F6F8;
    color: #2980B9;
    font-size: 13px;
    font-weight: 600;
    padding: 5px 12px;
    border-radius: 6px;
}

/* === Bildergalerie (quadratisch + Lightbox) === */
.bsv-gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    margin-bottom: 50px;
}

@media (max-width: 1024px) {
    .bsv-gallery-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 768px) {
    .bsv-gallery-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

.bsv-gallery-item {
    display: block;
    position: relative;
    aspect-ratio: 1 / 1;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    cursor: pointer;
    text-decoration: none;
}

.bsv-gallery-item:hover {
    transform: scale(1.03);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
}

.bsv-gallery-item::after {
    content: '🔍';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(27, 58, 92, 0.3);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.bsv-gallery-item:hover::after {
    opacity: 1;
}

.bsv-gallery-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* === Lightbox === */
.bsv-lightbox {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.92);
    z-index: 99999;
    align-items: center;
    justify-content: center;
    padding: 40px;
}

.bsv-lightbox-active {
    display: flex !important;
}

.bsv-lightbox-img {
    max-width: 90%;
    max-height: 85vh;
    object-fit: contain;
    border-radius: 8px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5);
}

.bsv-lightbox-close,
.bsv-lightbox-prev,
.bsv-lightbox-next {
    position: absolute;
    background: none;
    border: none;
    color: #FFFFFF;
    cursor: pointer;
    font-size: 36px;
    padding: 15px;
    transition: opacity 0.2s ease;
    z-index: 100000;
    line-height: 1;
}

.bsv-lightbox-close:hover,
.bsv-lightbox-prev:hover,
.bsv-lightbox-next:hover {
    opacity: 0.7;
}

.bsv-lightbox-close {
    top: 15px;
    right: 25px;
    font-size: 44px;
}

.bsv-lightbox-prev {
    left: 25px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 48px;
}

.bsv-lightbox-next {
    right: 25px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 48px;
}

@media (max-width: 768px) {
    .bsv-lightbox {
        padding: 15px;
    }
    
    .bsv-lightbox-prev {
        left: 5px;
        font-size: 36px;
    }
    
    .bsv-lightbox-next {
        right: 5px;
        font-size: 36px;
    }
}

/* === Elementor Lightbox Override === */
.elementor-lightbox .dialog-lightbox-close-button,
.elementor-lightbox .elementor-swiper-button {
    background-color: rgba(27, 58, 92, 0.8) !important;
    color: #FFFFFF !important;
}

.elementor-lightbox .dialog-lightbox-close-button:hover,
.elementor-lightbox .elementor-swiper-button:hover {
    background-color: #1B3A5C !important;
}

/* === Dokumente-Seite === */

/* Dokumente-Grid (2 Spalten) */
.bsv-docs-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
    margin-bottom: 50px;
}

@media (max-width: 768px) {
    .bsv-docs-grid {
        grid-template-columns: 1fr;
    }
}

/* Kategorie-Karte */
.bsv-doc-category {
    background: #FFFFFF;
    border-radius: 12px;
    padding: 30px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
}

.bsv-doc-category h3 {
    color: #1B3A5C;
    font-size: 18px;
    font-weight: 600;
    margin: 0 0 20px;
    padding-bottom: 12px;
    border-bottom: 2px solid #F0F0F0;
}

/* Dokument-Eintrag */
.bsv-doc-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.bsv-doc-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 15px;
    border-radius: 8px;
    text-decoration: none;
    color: inherit;
    transition: background-color 0.2s ease;
}

a.bsv-doc-item:hover {
    background-color: #F4F6F8;
}

.bsv-doc-icon {
    font-size: 24px;
    flex-shrink: 0;
}

.bsv-doc-info {
    flex: 1;
}

.bsv-doc-info strong {
    display: block;
    color: #2C3E50;
    font-size: 15px;
    margin-bottom: 2px;
}

.bsv-doc-meta {
    color: #999;
    font-size: 12px;
}

.bsv-doc-download {
    font-size: 20px;
    color: #2980B9;
    font-weight: 700;
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #F4F6F8;
    transition: all 0.2s ease;
}

a.bsv-doc-item:hover .bsv-doc-download {
    background: #1B3A5C;
    color: #FFFFFF;
}

.bsv-doc-placeholder {
    opacity: 0.5;
    cursor: default;
}

/* === Interner Bereich === */
.bsv-internal-section {
    margin-top: 20px;
}

.bsv-internal-header {
    text-align: center;
    margin-bottom: 30px;
    padding-top: 40px;
    border-top: 2px solid #E0E0E0;
}

.bsv-internal-header h2 {
    color: #1B3A5C;
    font-size: 28px;
    margin: 0 0 10px;
}

.bsv-internal-header p {
    color: #777;
    font-size: 16px;
}

/* Passwort-Gate */
.bsv-password-gate {
    max-width: 450px;
    margin: 0 auto 40px;
    text-align: center;
}

.bsv-password-form {
    display: flex;
    gap: 10px;
    margin-bottom: 10px;
}

.bsv-password-input {
    flex: 1;
    padding: 14px 20px;
    border: 2px solid #E0E0E0;
    border-radius: 8px;
    font-size: 16px;
    outline: none;
    transition: border-color 0.2s ease;
}

.bsv-password-input:focus {
    border-color: #1B3A5C;
}

.bsv-password-error {
    border-color: #D32F2F !important;
    animation: bsv-shake 0.3s ease;
}

@keyframes bsv-shake {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-5px); }
    75% { transform: translateX(5px); }
}

.bsv-password-btn {
    padding: 14px 28px;
    background: #1B3A5C;
    color: #FFFFFF;
    border: none;
    border-radius: 8px;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.2s ease;
}

.bsv-password-btn:hover {
    background: #2980B9;
}

.bsv-password-hint {
    color: #999;
    font-size: 13px;
    margin: 10px 0 0;
}

/* === Kontakt-Seite: Tabs === */
.bsv-tabs {
    display: flex;
    gap: 5px;
    margin-bottom: 30px;
    justify-content: center;
    flex-wrap: wrap;
}

.bsv-tab {
    padding: 14px 24px;
    border: 2px solid #E0E0E0;
    background: #FFFFFF;
    border-radius: 8px;
    font-size: 15px;
    font-weight: 600;
    color: #555;
    cursor: pointer;
    transition: all 0.2s ease;
}

.bsv-tab:hover {
    border-color: #1B3A5C;
    color: #1B3A5C;
}

.bsv-tab-active {
    background: #1B3A5C !important;
    border-color: #1B3A5C !important;
    color: #FFFFFF !important;
}

.bsv-tab-active:hover {
    color: #FFFFFF !important;
    background: #1B3A5C !important;
}

.bsv-tab-content {
    display: none;
}

.bsv-tab-content-active {
    display: block;
}

/* === Kontakt-Layout (Formular links + Sidebar rechts) === */
.bsv-contact-layout {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 30px;
    align-items: start;
}

@media (max-width: 1024px) {
    .bsv-contact-layout {
        grid-template-columns: 1fr;
    }
}

/* Sidebar Infokarten */
.bsv-contact-sidebar {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.bsv-contact-info-card {
    background: #FFFFFF;
    border-radius: 10px;
    padding: 20px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.bsv-contact-info-card h3 {
    color: #1B3A5C;
    font-size: 15px;
    margin: 0 0 10px;
}

.bsv-contact-info-card p {
    color: #555;
    font-size: 14px;
    line-height: 1.6;
    margin: 0 0 5px;
}

/* === Formular-Karte === */
.bsv-form-card {
    background: #FFFFFF;
    border-radius: 12px;
    padding: 40px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
}

.bsv-form-card h2 {
    color: #1B3A5C;
    font-size: 24px;
    margin: 0 0 10px;
}

.bsv-form-intro {
    color: #777;
    font-size: 15px;
    margin-bottom: 25px;
    line-height: 1.6;
}

.bsv-form-section-title {
    color: #1B3A5C;
    font-size: 18px;
    font-weight: 600;
    margin: 30px 0 15px;
    padding-top: 20px;
    border-top: 2px solid #F0F0F0;
}

.bsv-form-section-title:first-of-type {
    border-top: none;
    padding-top: 0;
    margin-top: 15px;
}

/* === Formular-Felder === */
.bsv-form {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.bsv-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
}

@media (max-width: 768px) {
    .bsv-form-row {
        grid-template-columns: 1fr;
    }
}

.bsv-form-group {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.bsv-form-group-small {
    max-width: 140px;
}

@media (max-width: 768px) {
    .bsv-form-group-small {
        max-width: none;
    }
}

.bsv-form-group label {
    color: #2C3E50;
    font-size: 14px;
    font-weight: 600;
}

.bsv-form-group input,
.bsv-form-group textarea,
.bsv-form-group select {
    padding: 12px 16px;
    border: 2px solid #E0E0E0;
    border-radius: 8px;
    font-size: 15px;
    font-family: inherit;
    outline: none;
    transition: border-color 0.2s ease;
    background: #FFFFFF;
}

.bsv-form-group input:focus,
.bsv-form-group textarea:focus,
.bsv-form-group select:focus {
    border-color: #1B3A5C;
}

.bsv-form-group textarea {
    resize: vertical;
    min-height: 100px;
}

/* Radio & Checkbox */
.bsv-radio-group {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.bsv-radio,
.bsv-checkbox {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 14px;
    color: #555;
    cursor: pointer;
    line-height: 1.5;
    font-weight: 400;
}

.bsv-radio input,
.bsv-checkbox input {
    margin-top: 3px;
    accent-color: #1B3A5C;
}

.bsv-checkbox a {
    color: #2980B9;
}

/* Submit-Button innerhalb von Formularen */
.bsv-form .bsv-btn {
    align-self: flex-start;
    margin-top: 10px;
}

@media (max-width: 768px) {
    .bsv-form-card {
        padding: 25px 20px;
    }
    
    .bsv-form .bsv-btn {
        width: 100%;
        text-align: center;
    }
}

/* === WPForms in Tabs zuordnen === */
/* Shortcode-Widgets werden unterhalb der Tabs gerendert.
   Wir verschieben sie per JS in die richtigen Tab-Container. */

/* WPForms Styling passend zum BSV-Design */
.wpforms-container .wpforms-form .wpforms-field-label {
    color: #2C3E50;
    font-size: 14px;
    font-weight: 600;
}

.wpforms-container .wpforms-form input[type="text"],
.wpforms-container .wpforms-form input[type="email"],
.wpforms-container .wpforms-form input[type="tel"],
.wpforms-container .wpforms-form input[type="date"],
.wpforms-container .wpforms-form input[type="number"],
.wpforms-container .wpforms-form select,
.wpforms-container .wpforms-form textarea {
    padding: 12px 16px !important;
    border: 2px solid #E0E0E0 !important;
    border-radius: 8px !important;
    font-size: 15px !important;
    transition: border-color 0.2s ease !important;
}

.wpforms-container .wpforms-form input:focus,
.wpforms-container .wpforms-form select:focus,
.wpforms-container .wpforms-form textarea:focus {
    border-color: #1B3A5C !important;
}

.wpforms-container .wpforms-form .wpforms-submit-container button {
    background-color: #D32F2F !important;
    color: #FFFFFF !important;
    padding: 14px 30px !important;
    border-radius: 8px !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    border: none !important;
    cursor: pointer !important;
    transition: background-color 0.2s ease !important;
}

.wpforms-container .wpforms-form .wpforms-submit-container button:hover {
    background-color: #B71C1C !important;
}

/* WPForms Bestätigungsmeldung */
.wpforms-confirmation-container-full {
    background: #FFFFFF !important;
    border: 2px solid #4CAF50 !important;
    border-radius: 12px !important;
    padding: 30px !important;
    color: #2C3E50 !important;
}

/* Shortcode-Widgets: unsichtbar aber im DOM (JS verschiebt sie in Tabs) */
.bsv-wpform-kontakt,
.bsv-wpform-mitglied,
.bsv-wpform-jugend {
    position: absolute;
    left: -9999px;
    width: 0;
    height: 0;
    overflow: hidden;
}

/* === Einheitliche Buttons (global) === */

/* Elementor-Buttons: kein Orange, runde Ecken, keine Icons */
.elementor-button {
    background-color: #D32F2F !important;
    color: #FFFFFF !important;
    border-radius: 8px !important;
    padding: 12px 28px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    border: none !important;
    transition: background-color 0.3s ease !important;
}

.elementor-button:hover {
    background-color: #B71C1C !important;
    color: #FFFFFF !important;
}

/* Outline-Variante (z.B. "Dokumente" auf Startseite) */
.elementor-button.elementor-button-link[href*="dokumente"],
.elementor-button.elementor-button-link[href*="aktuell"] {
    background-color: transparent !important;
    color: #FFFFFF !important;
    border: 2px solid rgba(255, 255, 255, 0.5) !important;
}

.elementor-button.elementor-button-link[href*="dokumente"]:hover,
.elementor-button.elementor-button-link[href*="aktuell"]:hover {
    border-color: #FFFFFF !important;
    background-color: rgba(255, 255, 255, 0.1) !important;
}

/* Icons in Buttons entfernen */
.elementor-button .elementor-button-icon {
    display: none !important;
}

/* "Schnell gefunden" Links — kein Orange (nur Text-Links, nicht Buttons) */
.elementor-widget-text-editor a,
.elementor-widget-icon-list a {
    color: #1B3A5C;
}

.elementor-widget-text-editor a:hover,
.elementor-widget-icon-list a:hover {
    color: #D32F2F;
}

/* CTA-Section Buttons auf Startseite */
.elementor-element-103b774 .elementor-button {
    border-radius: 8px !important;
}

/* BSV Custom Buttons (Verein, Jugend CTA) */
.bsv-btn {
    border-radius: 8px !important;
    padding: 12px 30px !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    transition: all 0.3s ease !important;
    display: inline-block !important;
}

.bsv-btn-primary {
    background: #D32F2F !important;
    color: #FFFFFF !important;
}

.bsv-btn-primary:hover {
    background: #B71C1C !important;
    color: #FFFFFF !important;
}

.bsv-btn-secondary {
    background: transparent !important;
    color: #FFFFFF !important;
    border: 2px solid rgba(255, 255, 255, 0.5) !important;
}

.bsv-btn-secondary:hover {
    border-color: #FFFFFF !important;
    background: rgba(255, 255, 255, 0.1) !important;
    color: #FFFFFF !important;
}

/* Link-Button (z.B. "Alle Termine anzeigen →") */
.bsv-link-button {
    color: #1B3A5C !important;
    text-decoration: none !important;
    border-bottom: 2px solid #D32F2F !important;
}

.bsv-link-button:hover {
    color: #D32F2F !important;
}

/* WPForms Submit-Button */
.wpforms-container .wpforms-form .wpforms-submit-container button {
    background-color: #D32F2F !important;
    color: #FFFFFF !important;
    border-radius: 8px !important;
    padding: 14px 30px !important;
    font-weight: 600 !important;
    border: none !important;
}

.wpforms-container .wpforms-form .wpforms-submit-container button:hover {
    background-color: #B71C1C !important;
}

/* === CTA Box Button Fix === */
.bsv-cta-box a.bsv-btn,
.bsv-cta-box .bsv-btn {
    color: #FFFFFF !important;
}

.bsv-cta-box a.bsv-btn-primary:hover {
    color: #FFFFFF !important;
}

.bsv-cta-box a.bsv-btn-secondary {
    color: #FFFFFF !important;
    border-color: rgba(255, 255, 255, 0.5) !important;
}

.bsv-cta-box a.bsv-btn-secondary:hover {
    color: #FFFFFF !important;
    border-color: #FFFFFF !important;
}

/* Links in dunklen Bereichen immer weiß */
.bsv-cta-box a {
    color: #FFFFFF !important;
}

/* === Tab-Buttons Override (kein Orange!) === */
.bsv-tabs .bsv-tab {
    background: #FFFFFF !important;
    border: 2px solid #E0E0E0 !important;
    color: #555 !important;
    border-radius: 8px !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    padding: 14px 24px !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
}

.bsv-tabs .bsv-tab:hover {
    border-color: #1B3A5C !important;
    color: #1B3A5C !important;
    background: #FFFFFF !important;
}

.bsv-tabs .bsv-tab.bsv-tab-active {
    background: #1B3A5C !important;
    border-color: #1B3A5C !important;
    color: #FFFFFF !important;
}

/* === Rechtstexte (Impressum, Datenschutz) === */
.bsv-legal-content {
    max-width: 800px;
    margin: 0 auto;
}

.bsv-legal-content h2 {
    color: #1B3A5C;
    font-size: 22px;
    font-weight: 600;
    margin: 35px 0 15px;
    padding-top: 20px;
    border-top: 1px solid #E0E0E0;
}

.bsv-legal-content h2:first-child {
    border-top: none;
    padding-top: 0;
    margin-top: 0;
}

.bsv-legal-content h3 {
    color: #2C3E50;
    font-size: 18px;
    font-weight: 600;
    margin: 25px 0 10px;
}

.bsv-legal-content p {
    color: #555;
    font-size: 15px;
    line-height: 1.7;
    margin-bottom: 15px;
}

.bsv-legal-note {
    color: #999 !important;
    font-size: 13px !important;
    margin-top: 40px !important;
}

/* === Sticky Header === */
header.elementor-location-header {
    position: sticky;
    top: 0;
    z-index: 9999;
    width: 100%;
    background: #FFFFFF;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
}

/* Accent-Line + Brand-Row bleiben sichtbar */
[data-id="hdr_accent"] {
    transition: max-height 0.3s ease, opacity 0.3s ease;
}

/* Nav-Row Hintergrund sicherstellen */
[data-id="hdr_nav"] {
    background: #FFFFFF !important;
}

/* WordPress Admin-Bar Offset wenn eingeloggt */
.admin-bar header.elementor-location-header {
    top: 32px;
}

@media (max-width: 782px) {
    .admin-bar header.elementor-location-header {
        top: 46px;
    }
}

/* === Schnell-gefunden Kacheln: gleiche Höhe + Buttons unten === */
[data-id="f60c075"] {
    align-items: stretch !important;
}

.elementor-element-66b0ceb,
.elementor-element-07fe347,
.elementor-element-2b03de9,
.elementor-element-afaeebe {
    justify-content: flex-start !important;
}

.elementor-element-66b0ceb > .elementor-widget-button,
.elementor-element-07fe347 > .elementor-widget-button,
.elementor-element-2b03de9 > .elementor-widget-button,
.elementor-element-afaeebe > .elementor-widget-button {
    margin-top: auto !important;
}

/* === Blog/Aktuell-Seite Styling === */

/* Hero-Banner mit Titel + Untertitel */
.blog .site-main::before {
    content: 'Aktuelles vom BSV';
    display: block;
    background-color: #1B3A5C;
    color: #FFFFFF;
    font-family: 'Montserrat', sans-serif;
    font-size: 42px;
    font-weight: 600;
    text-align: center;
    padding: 80px 30px;
    width: 100vw;
    max-width: 100vw;
    box-sizing: border-box;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    margin: 0;
}

/* Seitentitel der Blogseite ausblenden */
.blog .page-header,
.blog .archive-header {
    display: none;
}

/* Beitrags-Seite Hintergrund */
.blog .site-main {
    background-color: #F4F6F8;
    padding: 40px 30px !important;
}

/* Einzelne Beitrags-Karten */
.blog article.post {
    background: #FFFFFF;
    border-radius: 12px;
    padding: 30px;
    margin-bottom: 25px !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
    max-width: 900px;
    margin-left: auto !important;
    margin-right: auto !important;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    border-left: 4px solid #1B3A5C;
}

.blog article.post:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
}

/* Beitrags-Titel */
.blog article.post .entry-title {
    margin: 0 0 8px !important;
    font-size: 22px;
}

.blog article.post .entry-title a {
    color: #2C3E50 !important;
    text-decoration: none !important;
    font-weight: 600;
}

.blog article.post .entry-title a:hover {
    color: #1B3A5C !important;
}

/* Beitrags-Datum sichtbar machen */
.blog article.post .entry-meta,
.blog article.post .post-meta,
.blog article.post time {
    color: #2980B9 !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    display: block !important;
    margin-bottom: 15px !important;
}

/* Beitrags-Inhalt */
.blog article.post .entry-content,
.blog article.post .entry-summary {
    color: #555 !important;
    font-size: 15px !important;
    line-height: 1.7 !important;
}

/* Beitrags-Bilder */
.blog article.post img {
    border-radius: 8px;
    max-width: 100%;
    height: auto;
    margin: 15px 0;
}

/* Weiterlesen-Link */
.blog article.post .more-link,
.blog article.post a.more-link {
    display: inline-block !important;
    background: #D32F2F !important;
    color: #FFFFFF !important;
    padding: 8px 20px !important;
    border-radius: 8px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    margin-top: 15px !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
}

.blog article.post .more-link:hover,
.blog article.post a.more-link:hover {
    background: #B71C1C !important;
}

/* Pagination */
.blog .nav-links {
    max-width: 900px;
    margin: 30px auto;
    text-align: center;
    display: flex;
    justify-content: center;
    gap: 15px;
}

.blog .nav-links a {
    display: inline-block;
    padding: 10px 24px;
    background: #FFFFFF;
    color: #1B3A5C;
    border-radius: 8px;
    font-weight: 600;
    text-decoration: none;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06);
}

.blog .nav-links a:hover {
    background: #1B3A5C;
    color: #FFFFFF;
}

/* === Einzelner Beitrag (Detailansicht) === */

/* Hero */
.single-post .site-main::before {
    content: 'Aktuelles vom BSV';
    display: block;
    background-color: #1B3A5C;
    color: #FFFFFF;
    font-family: 'Montserrat', sans-serif;
    font-size: 42px;
    font-weight: 600;
    text-align: center;
    padding: 80px 30px;
    width: 100vw;
    max-width: 100vw;
    box-sizing: border-box;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    margin: 0;
}

.single-post .site-main {
    background-color: #F4F6F8;
    padding: 40px 30px !important;
}

.single-post article.post {
    background: #FFFFFF;
    border-radius: 12px;
    padding: 40px;
    max-width: 900px;
    margin: 0 auto 30px !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
}

.single-post article.post .entry-title {
    color: #2C3E50 !important;
    font-size: 32px;
    font-weight: 600;
    margin: 0 0 10px !important;
}

.single-post article.post .entry-meta,
.single-post article.post time {
    color: #2980B9 !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    display: block !important;
    margin-bottom: 20px !important;
}

.single-post article.post .entry-content {
    color: #555 !important;
    font-size: 16px !important;
    line-height: 1.8 !important;
}

.single-post article.post .entry-content p {
    margin-bottom: 20px;
}

.single-post article.post img {
    border-radius: 8px;
    max-width: 100%;
    height: auto;
    margin: 20px 0;
}



.single-post .post-navigation,
.single-post .nav-links {
    max-width: 900px;
    margin: 0 auto 30px;
}

/* Zurück-Link als echten Link stylen */
.single-post .site-main > .post ~ * {
    max-width: 900px;
    margin-left: auto;
    margin-right: auto;
}

@media (max-width: 768px) {
    .blog .site-main::before,
    .single-post .site-main::before {
        font-size: 28px;
        padding: 60px 20px;
    }
    
    .blog article.post {
        padding: 20px;
    }
    
    .single-post article.post {
        padding: 25px;
    }
    
    .single-post article.post .entry-title {
        font-size: 24px;
    }
}

/* === Zurück-Link auf Beitrags-Detailseiten === */
.bsv-back-link {
    margin: 15px 0;
}

.bsv-back-link a {
    color: #1B3A5C !important;
    text-decoration: none !important;
    font-weight: 600;
    font-size: 15px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 8px 0;
    transition: color 0.2s ease;
}

.bsv-back-link a:hover {
    color: #D32F2F !important;
}

.single-post .entry-content > .bsv-back-link:last-child {
    margin-top: 30px;
    padding-top: 20px;
    border-top: 1px solid #E0E0E0;
}
/* ========================================
 * BSV Aktuell-Seite - NUCLEAR OVERRIDE
 * Alle orange Elemente → ROT mit maximaler Spezifität
 * ======================================== */

/* === Badge/Kategorie ROT (nukleare Spezifität) === */
body.page-id-19 .elementor-posts-container .elementor-post__badge,
body.page-id-19 .elementor-widget-posts .elementor-post__badge,
body.page-id-19 div.elementor-post__badge,
body.page-id-19 .elementor-post .elementor-post__badge,
.page-id-19 .elementor-post__badge {
    background-color: #D32F2F !important;
    color: #FFFFFF !important;
    border-color: #D32F2F !important;
}

body.page-id-19 .elementor-posts-container .elementor-post__badge:hover,
body.page-id-19 .elementor-post__badge:hover {
    background-color: #B71C1C !important;
    border-color: #B71C1C !important;
}

/* === Weiterlesen als roter Text-Link === */
body.page-id-19 .elementor-posts-container .elementor-post__read-more,
body.page-id-19 .elementor-widget-posts .elementor-post__read-more,
body.page-id-19 a.elementor-post__read-more,
.page-id-19 .elementor-post__read-more {
    color: #D32F2F !important;
    background-color: transparent !important;
    border: none !important;
    font-family: 'Montserrat', sans-serif !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    padding: 0 !important;
    transition: color 0.3s ease !important;
}

body.page-id-19 .elementor-post__read-more:hover,
.page-id-19 .elementor-post__read-more:hover {
    color: #B71C1C !important;
    background-color: transparent !important;
}

/* === Avatar ausblenden === */
body.page-id-19 .elementor-post__avatar,
.page-id-19 .elementor-post__avatar {
    display: none !important;
    visibility: hidden !important;
}

/* === Pagination === */
body.page-id-19 .elementor-pagination {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 8px !important;
    margin-top: 40px !important;
    font-family: 'Montserrat', sans-serif !important;
}

body.page-id-19 .elementor-pagination .page-numbers {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 40px !important;
    height: 40px !important;
    padding: 0 12px !important;
    background: #FFFFFF !important;
    color: #2C3E50 !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    border-radius: 6px !important;
    border: 2px solid #E0E0E0 !important;
    transition: all 0.3s ease !important;
}

body.page-id-19 .elementor-pagination .page-numbers:hover {
    background: #F4F6F8 !important;
    border-color: #2980B9 !important;
    color: #2980B9 !important;
}

body.page-id-19 .elementor-pagination .page-numbers.current {
    background: #D32F2F !important;
    color: #FFFFFF !important;
    border-color: #D32F2F !important;
}

body.page-id-19 .elementor-pagination .page-numbers.prev,
body.page-id-19 .elementor-pagination .page-numbers.next {
    font-size: 18px !important;
    padding: 0 16px !important;
}

body.page-id-19 .elementor-pagination .page-numbers.dots {
    border: none !important;
    background: transparent !important;
    color: #999 !important;
    pointer-events: none !important;
}

/* Mobile */
@media (max-width: 768px) {
    body.page-id-19 .elementor-pagination .page-numbers {
        min-width: 36px !important;
        height: 36px !important;
        font-size: 13px !important;
        padding: 0 10px !important;
    }
    
    body.page-id-19 .elementor-pagination {
        gap: 6px !important;
    }
}

/* ========================================
 * BSV Single Post Template - Beitrags-Detailseite
 * Modernes, sauberes Layout
 * ======================================== */

/* === Container === */
.single-post .site-main {
    background: #F4F6F8;
    padding: 0;
}

/* === Zurück-Link === */
.single-post .bsv-back-link {
    max-width: 1200px;
    margin: 0 auto;
    padding: 30px 30px 20px;
}

.single-post .bsv-back-link a {
    color: #1B3A5C !important;
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    transition: color 0.3s ease;
}

.single-post .bsv-back-link a:before {
    content: "←";
    font-size: 18px;
}

.single-post .bsv-back-link a:hover {
    color: #D32F2F !important;
}

/* === Article Container === */
.single-post article.post {
    max-width: 900px;
    margin: 0 auto 40px;
    background: #FFFFFF;
    border-radius: 12px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    overflow: hidden;
}

/* === Featured Image === */
.single-post .post-thumbnail {
    width: 100%;
    height: 400px;
    overflow: hidden;
    margin: 0 !important;
}

.single-post .post-thumbnail img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 0 !important;
    margin: 0 !important;
}

/* === Content Wrapper === */
.single-post .entry-content-wrapper {
    padding: 40px 60px;
}

/* === Meta (Kategorie + Datum) === */
.single-post .entry-meta {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 20px;
    flex-wrap: wrap;
}

.single-post .entry-meta .category {
    display: inline-block;
    background: #D32F2F;
    color: #FFFFFF;
    font-family: 'Montserrat', sans-serif;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 5px 12px;
    border-radius: 4px;
    text-decoration: none;
    transition: background 0.3s ease;
}

.single-post .entry-meta .category:hover {
    background: #B71C1C;
}

.single-post .entry-meta .date {
    color: #999;
    font-size: 14px;
    font-family: 'Open Sans', sans-serif;
}

.single-post .entry-meta .date:before {
    content: "📅 ";
}

/* === Titel === */
.single-post .entry-title {
    color: #1B3A5C !important;
    font-family: 'Montserrat', sans-serif;
    font-size: 36px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    margin: 0 0 30px !important;
}

/* === Content === */
.single-post .entry-content {
    color: #2C3E50;
    font-size: 17px;
    line-height: 1.8;
    font-family: 'Open Sans', sans-serif;
}

.single-post .entry-content p {
    margin-bottom: 20px;
}

.single-post .entry-content h2 {
    color: #1B3A5C;
    font-family: 'Montserrat', sans-serif;
    font-size: 28px;
    font-weight: 700;
    margin: 40px 0 20px;
}

.single-post .entry-content h3 {
    color: #1B3A5C;
    font-family: 'Montserrat', sans-serif;
    font-size: 22px;
    font-weight: 600;
    margin: 30px 0 15px;
}

.single-post .entry-content a {
    color: #D32F2F;
    text-decoration: underline;
    transition: color 0.3s ease;
}

.single-post .entry-content a:hover {
    color: #B71C1C;
}

.single-post .entry-content img {
    border-radius: 8px;
    max-width: 100%;
    height: auto;
    margin: 30px 0;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.single-post .entry-content blockquote {
    border-left: 4px solid #D32F2F;
    padding: 20px 30px;
    margin: 30px 0;
    background: #F9F9F9;
    border-radius: 4px;
    font-style: italic;
    color: #555;
}

/* === Navigation (Vorheriger/Nächster Beitrag) === */
.single-post .post-navigation {
    max-width: 1200px;
    margin: 40px auto;
    padding: 0 30px 60px;
    display: flex;
    justify-content: space-between;
    gap: 20px;
}

.single-post .post-navigation a {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 12px 24px;
    background: #FFFFFF;
    color: #1B3A5C;
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    border-radius: 8px;
    border: 2px solid #E0E0E0;
    transition: all 0.3s ease;
}

.single-post .post-navigation a:hover {
    border-color: #D32F2F;
    color: #D32F2F;
}

.single-post .post-navigation .nav-previous a:before {
    content: "←";
    font-size: 18px;
}

.single-post .post-navigation .nav-next a:after {
    content: "→";
    font-size: 18px;
}

/* === Mobile === */
@media (max-width: 768px) {
    .single-post .post-thumbnail {
        height: 250px;
    }
    
    .single-post .entry-content-wrapper {
        padding: 30px 25px;
    }
    
    .single-post .entry-title {
        font-size: 28px !important;
    }
    
    .single-post .entry-content {
        font-size: 16px;
    }
    
    .single-post .post-navigation {
        flex-direction: column;
    }
    
    .single-post .bsv-back-link {
        padding: 20px 20px 15px;
    }
}

/* ========================================
 * BSV Single Post - Fixes
 * Weniger Abstand + Schriftgröße korrigiert
 * ======================================== */

/* === Weniger Abstand zum Menü === */
.single-post .bsv-back-link {
    max-width: 1200px;
    margin: 0 auto;
    padding: 20px 30px 15px; /* Reduziert von 30px auf 20px top */
}

.single-post .site-main {
    padding-top: 0 !important;
    margin-top: 0 !important;
}

/* === Article ohne zusätzlichen Top-Margin === */
.single-post article.post {
    max-width: 900px;
    margin: 0 auto 40px;
    background: #FFFFFF;
    border-radius: 12px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    overflow: hidden;
}

/* === Titel Schriftgröße anpassen === */
.single-post .entry-title {
    color: #1B3A5C !important;
    font-family: 'Montserrat', sans-serif !important;
    font-size: 32px !important; /* Reduziert von 36px */
    font-weight: 700 !important;
    line-height: 1.3 !important;
    margin: 0 0 25px !important; /* Reduziert bottom margin */
}

/* Mobile Anpassung */
@media (max-width: 768px) {
    .single-post .bsv-back-link {
        padding: 15px 20px 10px;
    }
    
    .single-post .entry-title {
        font-size: 24px !important;
    }
}

/* ========================================
 * BSV Hero Section - Schriftgröße anpassen
 * Sowohl Aktuell-Übersicht als auch Detail
 * ======================================== */

/* === Aktuell-Übersichtsseite Hero === */
.page-id-19 .bsv-hero h1,
.page-id-19 .bsv-hero .elementor-heading-title {
    font-size: 36px !important; /* Reduziert von 42px */
}

.page-id-19 .bsv-hero .bsv-hero-text {
    font-size: 16px !important; /* Reduziert von 18px */
}

/* === Beitrags-Detail Hero (Titel im Content) === */
.single-post .entry-title {
    font-size: 28px !important; /* Reduziert von 32px */
}

/* Mobile */
@media (max-width: 768px) {
    .page-id-19 .bsv-hero h1,
    .page-id-19 .bsv-hero .elementor-heading-title {
        font-size: 28px !important;
    }
    
    .page-id-19 .bsv-hero .bsv-hero-text {
        font-size: 15px !important;
    }
    
    .single-post .entry-title {
        font-size: 22px !important;
    }
}

/* ========================================
 * BSV Single Post - Better Image Display
 * Besserer Focus mit object-fit: contain
 * ======================================== */

.single-post .post-thumbnail {
    width: 100%;
    min-height: 300px;
    max-height: 500px;
    overflow: hidden;
    margin: 0 !important;
    background: #F4F6F8;
    display: flex;
    align-items: center;
    justify-content: center;
}

.single-post .post-thumbnail img {
    width: 100% !important;
    height: auto !important;
    max-height: 500px !important;
    object-fit: contain !important;
    object-position: center center !important;
    border-radius: 0 !important;
    margin: 0 !important;
    display: block !important;
}

@media (max-width: 768px) {
    .single-post .post-thumbnail {
        min-height: 200px;
        max-height: 350px;
    }
    
    .single-post .post-thumbnail img {
        max-height: 350px !important;
    }
}

/* ========================================
 * BSV Startseite - Kacheln komplett klickbar
 * CSS-basierte Lösung mit Overlay-Links
 * ======================================== */

/* Kacheln Position Relative für Overlay */
#bei_grid .e-con[data-id^="akt_k"],
#ter_grid .e-con[data-id^="akt_k"] {
    position: relative !important;
    cursor: pointer !important;
    transition: transform 0.3s ease, box-shadow 0.3s ease !important;
}

/* Hover-Effekt */
#bei_grid .e-con[data-id^="akt_k"]:hover,
#ter_grid .e-con[data-id^="akt_k"]:hover {
    transform: translateY(-4px) !important;
    box-shadow: 0 8px 25px rgba(0,0,0,0.15) !important;
}

/* Alle internen Links nicht klickbar (Overlay übernimmt) */
#bei_grid .e-con[data-id^="akt_k"] a,
#ter_grid .e-con[data-id^="akt_k"] a {
    pointer-events: none !important;
}

/* Einzelne Kachel-Links per JavaScript */

/* ========================================
 * BSV Button "Alle Beiträge anzeigen" - ROT GEFÜLLT
 * Exakt wie "Alle Termine anzeigen" Button
 * ======================================== */

/* Button ROT gefüllt mit weißer Schrift */
body .elementor [data-id="bei_link_btn"] .elementor-button,
body .elementor [data-id="bei_link_btn"] a,
.page-id-16 [data-id="bei_link_btn"] a,
.elementor-element-bei_link_btn a {
    color: #FFFFFF !important;
    background-color: #D32F2F !important;
    border: 2px solid #D32F2F !important;
}

/* Hover: Dunkler */
body .elementor [data-id="bei_link_btn"] .elementor-button:hover,
body .elementor [data-id="bei_link_btn"] a:hover,
.page-id-16 [data-id="bei_link_btn"] a:hover,
.elementor-element-bei_link_btn a:hover {
    color: #FFFFFF !important;
    background-color: #B71C1C !important;
    border-color: #B71C1C !important;
}

/* ========================================
 * BSV Single Post - site-main::before Fix
 * "Aktuelles vom BSV" im ::before Pseudo-Element
 * ======================================== */

.single-post .site-main::before {
    font-size: 36px !important;
    font-weight: 400 !important;
    line-height: 1.3 !important;
}

@media (max-width: 768px) {
    .single-post .site-main::before {
        font-size: 28px !important;
    }
}

/* ========================================
 * BSV Content Page Styles
 * Wiederverwendbare Klassen für alle Contentseiten
 * Nutzung: CSS-Klassen in Elementor Container/Widget Settings
 * ======================================== */

/* --- Sections --- */
.bsv-section {
    max-width: 1100px;
    margin: 0 auto;
    padding: 60px 20px;
}

.bsv-section-grey {
    background-color: #F4F6F8;
}

.bsv-section-dark {
    background-color: #1B3A5C;
    color: #FFFFFF;
}

.bsv-section-dark h2,
.bsv-section-dark h3,
.bsv-section-dark p {
    color: #FFFFFF;
}

/* --- Section Titles --- */
.bsv-section-title {
    color: #1B3A5C;
    font-size: 32px;
    font-weight: 600;
    text-align: center;
    margin-bottom: 10px;
}

.bsv-section-subtitle {
    color: #666;
    font-size: 16px;
    text-align: center;
    margin-bottom: 40px;
}

/* --- Welcome / Person Block (2-spaltig) --- */
.bsv-welcome {
    display: flex;
    flex-wrap: wrap;
    gap: 50px;
    align-items: flex-start;
}

.bsv-welcome-text {
    flex: 1 1 55%;
    min-width: 280px;
}

.bsv-welcome-text h2 {
    color: #1B3A5C;
    font-size: 28px;
    font-weight: 600;
    margin-bottom: 20px;
}

.bsv-welcome-text p {
    color: #444;
    line-height: 1.7;
    margin-bottom: 15px;
}

.bsv-welcome-img {
    flex: 1 1 35%;
    min-width: 250px;
}

.bsv-welcome-img img {
    width: 100%;
    border-radius: 8px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
}

/* Kontaktbox in Welcome */
.bsv-kontakt-box {
    background: #F4F6F8;
    border-left: 4px solid #D32F2F;
    padding: 20px;
    border-radius: 0 8px 8px 0;
    margin-top: 25px;
}

.bsv-kontakt-label {
    font-size: 13px;
    color: #999;
    text-transform: uppercase;
    letter-spacing: 1px;
    display: block;
    margin-bottom: 5px;
}

/* --- Card Grid (Ausbildung, Angebote etc.) --- */
.bsv-card-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 25px;
}

@media (max-width: 992px) {
    .bsv-card-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 600px) {
    .bsv-card-grid {
        grid-template-columns: 1fr;
    }
}

.bsv-card {
    background: #FFFFFF;
    border-radius: 12px;
    padding: 35px 25px;
    text-align: center;
    box-shadow: 0 4px 20px rgba(0,0,0,0.08);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.bsv-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 30px rgba(0,0,0,0.12);
}

.bsv-card-icon {
    font-size: 40px;
    margin-bottom: 15px;
    display: block;
}

.bsv-card h3 {
    color: #1B3A5C;
    font-size: 18px;
    font-weight: 600;
    margin-bottom: 12px;
}

.bsv-card p {
    color: #666;
    font-size: 14px;
    line-height: 1.6;
    margin-bottom: 12px;
}

.bsv-card-meta {
    font-size: 12px;
    color: #D32F2F;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* --- Termine-Liste --- */
.bsv-termine-list {
    max-width: 700px;
    margin: 0 auto;
}

.bsv-termin-item {
    display: flex;
    gap: 25px;
    align-items: flex-start;
    padding: 25px 0;
    border-bottom: 1px solid #E8E8E8;
}

.bsv-termin-item:last-child {
    border-bottom: none;
}

.bsv-termin-date {
    background: #D32F2F;
    color: #FFFFFF;
    border-radius: 8px;
    padding: 12px 16px;
    text-align: center;
    min-width: 65px;
    flex-shrink: 0;
}

.bsv-termin-day {
    display: block;
    font-size: 28px;
    font-weight: 700;
    line-height: 1;
}

.bsv-termin-month {
    display: block;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-top: 4px;
}

.bsv-termin-info strong {
    color: #1B3A5C;
    font-size: 16px;
    display: block;
    margin-bottom: 5px;
}

.bsv-termin-info p {
    color: #666;
    font-size: 14px;
    margin: 0;
}

/* --- Buttons --- */
.bsv-btn {
    display: inline-block;
    padding: 14px 30px;
    border-radius: 4px;
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.2s ease;
    cursor: pointer;
}

.bsv-btn-primary {
    background: #D32F2F;
    color: #FFFFFF !important;
    border: 2px solid #D32F2F;
}

.bsv-btn-primary:hover {
    background: #B71C1C;
    border-color: #B71C1C;
}

.bsv-btn-secondary {
    background: transparent;
    color: #D32F2F !important;
    border: 2px solid #D32F2F;
}

.bsv-btn-secondary:hover {
    background: #D32F2F;
    color: #FFFFFF !important;
}

.bsv-link-button {
    display: inline-block;
    color: #D32F2F;
    font-weight: 600;
    text-decoration: none;
    border-bottom: 2px solid #D32F2F;
    padding-bottom: 2px;
    transition: color 0.2s;
}

.bsv-link-button:hover {
    color: #B71C1C;
    border-color: #B71C1C;
}

/* --- CTA Box --- */
.bsv-cta-box {
    background: linear-gradient(135deg, #1B3A5C 0%, #2C5C8C 100%);
    color: #FFFFFF;
    text-align: center;
    padding: 60px 30px;
    border-radius: 12px;
    margin-top: 20px;
}

.bsv-cta-box h2 {
    color: #FFFFFF;
    font-size: 32px;
    margin-bottom: 15px;
}

.bsv-cta-box p {
    color: rgba(255,255,255,0.9);
    font-size: 16px;
    max-width: 600px;
    margin: 0 auto 30px;
    line-height: 1.7;
}

.bsv-cta-buttons {
    display: flex;
    gap: 15px;
    justify-content: center;
    flex-wrap: wrap;
}

.bsv-cta-box .bsv-btn-primary {
    background: #D32F2F;
    border-color: #D32F2F;
}

.bsv-cta-box .bsv-btn-secondary {
    background: transparent;
    color: #FFFFFF !important;
    border-color: rgba(255,255,255,0.5);
}

.bsv-cta-box .bsv-btn-secondary:hover {
    background: rgba(255,255,255,0.15);
    border-color: #FFFFFF;
}

/* --- Gallery Grid (Elementor Gallery Widget Styling) --- */
.bsv-gallery .gallery {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 15px !important;
}

@media (max-width: 992px) {
    .bsv-gallery .gallery {
        grid-template-columns: repeat(3, 1fr) !important;
    }
}

@media (max-width: 600px) {
    .bsv-gallery .gallery {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

.bsv-gallery .gallery-item {
    margin: 0 !important;
    width: 100% !important;
    padding: 0 !important;
}

.bsv-gallery .gallery-item img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    border-radius: 8px;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.bsv-gallery .gallery-item img:hover {
    transform: scale(1.03);
    box-shadow: 0 8px 25px rgba(0,0,0,0.2);
}

/* --- Hero (Content Pages) - identisch zu bsv-hero --- */
.bsv-hero-content {
    background-color: #1B3A5C !important;
    padding: 80px 30px !important;
    text-align: center;
}

.bsv-hero-content h1,
.bsv-hero-content .elementor-heading-title {
    color: #FFFFFF !important;
    font-size: 42px;
    margin-bottom: 20px;
}

.bsv-hero-content .elementor-widget-text-editor,
.bsv-hero-content .elementor-widget-heading p {
    color: #FFFFFF;
}

.bsv-hero-content .bsv-hero-text,
.bsv-hero-content p.elementor-heading-title {
    color: #FFFFFF !important;
    font-size: 18px;
    max-width: 700px;
    margin: 0 auto;
    line-height: 1.6;
}

/* --- Responsive Welcome --- */
@media (max-width: 768px) {
    .bsv-welcome {
        flex-direction: column-reverse;
    }
    
    .bsv-welcome-text h2 {
        font-size: 24px;
    }
    
    .bsv-section-title {
        font-size: 26px;
    }
    
    .bsv-hero-content h1 {
        font-size: 36px;
    }
    
    .bsv-cta-box h2 {
        font-size: 26px;
    }
}

/* --- Card Grid 2-spaltig Variante --- */
.bsv-card-grid-2 {
    grid-template-columns: repeat(2, 1fr) !important;
}

@media (max-width: 600px) {
    .bsv-card-grid-2 {
        grid-template-columns: 1fr !important;
    }
}

/* ========================================
 * BSV Content Fixes
 * ======================================== */

/* --- Welcome Block: Anni neben Text --- */
.bsv-section .e-con-inner {
    display: flex;
    flex-wrap: wrap;
    gap: 50px;
}

/* --- Ausbildungskacheln: 2-spaltig erzwingen --- */
.bsv-card-grid,
.bsv-card-grid-2,
body .elementor .bsv-card-grid,
body .elementor .bsv-card-grid-2,
.elementor-widget-text-editor .bsv-card-grid,
.elementor-widget-text-editor .bsv-card-grid-2,
div.bsv-card-grid,
div.bsv-card-grid-2 {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 25px !important;
}

@media (max-width: 600px) {
    .bsv-card-grid,
    .bsv-card-grid-2,
    body .elementor .bsv-card-grid,
    div.bsv-card-grid {
        grid-template-columns: 1fr !important;
    }
}

/* --- Galerie: Bilder quadratisch + füllen den Raum --- */
body .bsv-gallery .elementor-image-gallery .gallery,
body .bsv-gallery .gallery {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 12px !important;
    width: 100% !important;
}

body .bsv-gallery .gallery .gallery-item,
body .bsv-gallery .gallery figure {
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    float: none !important;
}

body .bsv-gallery .gallery .gallery-item a,
body .bsv-gallery .gallery figure a {
    display: block !important;
    width: 100% !important;
    aspect-ratio: 1 / 1 !important;
    overflow: hidden !important;
    border-radius: 8px !important;
}

body .bsv-gallery .gallery .gallery-item img,
body .bsv-gallery .gallery figure img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
    border-radius: 8px !important;
}

@media (max-width: 992px) {
    body .bsv-gallery .gallery {
        grid-template-columns: repeat(3, 1fr) !important;
    }
}

@media (max-width: 600px) {
    body .bsv-gallery .gallery {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

/* --- Kontakt-Box nochmal sicherstellen --- */
.bsv-kontakt-box {
    background: #F4F6F8 !important;
    border-left: 4px solid #D32F2F !important;
    padding: 20px !important;
    border-radius: 0 8px 8px 0 !important;
    margin-top: 25px !important;
}

.bsv-kontakt-label {
    font-size: 13px !important;
    color: #999 !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    display: block !important;
    margin-bottom: 5px !important;
}

/* --- Welcome Block: Text + Bild nebeneinander --- */
.elementor-element-j_welcome > .e-con-inner {
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: 40px !important;
}

.elementor-element-j_welcome_text {
    flex: 1 1 55% !important;
    min-width: 300px !important;
    max-width: 60% !important;
}

.elementor-element-j_welcome_img {
    flex: 1 1 35% !important;
    min-width: 250px !important;
    max-width: 38% !important;
}

.elementor-element-j_welcome_img img {
    border-radius: 8px !important;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1) !important;
    width: 100% !important;
    height: auto !important;
}

@media (max-width: 768px) {
    .elementor-element-j_welcome > .e-con-inner {
        flex-direction: column-reverse !important;
    }
    
    .elementor-element-j_welcome_text,
    .elementor-element-j_welcome_img {
        max-width: 100% !important;
        flex: 1 1 100% !important;
    }
}

/* --- Sections: boxed max-width override --- */
/* Elementor boxed setzt min(100%, 767px) - wir wollen 1100px */
.elementor-element-j_ausbildung > .e-con-inner,
.elementor-element-j_galerie > .e-con-inner,
.elementor-element-j_termine > .e-con-inner,
.elementor-element-j_cta > .e-con-inner,
.elementor-element-j_welcome > .e-con-inner {
    max-width: 1100px !important;
}
