/* ===================================================
   TV 1864 Bernsbach V2
=================================================== */

/* Automatische, sprachkorrekte Silbentrennung bei zu langen Wörtern/Überschriften,
   statt dass Text irgendwo mitten im Wort abgeschnitten oder überlaufen wird. */
h1,h2,h3,h4,h5,h6,p{
    hyphens:auto;
    -webkit-hyphens:auto;
    overflow-wrap:break-word;
    word-break:normal;
}

:root{

    /* Corporate Colors – exakt aus dem Vereinslogo (assets/logo-transparent.png) gemessen */
    --green:#008c33;
    --green-dark:#046b28;
    --green-light:#26c15f;
    --white:#ffffff;
    --light:#f4faf4;
    --text:#2C3E50;

}

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{

    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
    background:var(--light);
    color:var(--text);
    overflow-x:hidden;

}

/* Container */

.container{

    width:min(1320px,92%);
    margin:auto;

}

/* ===================================
   HEADER
=================================== */

.header{

    position:fixed;
    top:0;
    left:0;

    width:100%;

    z-index:999;

}

/* ===================================
   NAVIGATION
=================================== */

.navbar{

    position:fixed;

    top:0;
    left:0;

    width:100%;

    display:flex;
    justify-content:space-between;
    align-items:center;

    padding:20px 60px;

    transition:all .35s ease;

    z-index:1000;

}

.navbar.scrolled{

    background:#ffffff;

    box-shadow:0 8px 25px rgba(0,0,0,.08);

    padding:15px 60px;

}

.navbar .container{

    height:100%;

    display:flex;

    justify-content:space-between;

    align-items:center;

}

.nav-links{
    display:flex;
    align-items:center;
    gap:35px;

    list-style:none;

    margin:0;
    padding:0;
}

.nav-links > li{
    display:flex;
    align-items:center;
    line-height:1;
}

.nav-links a{

    display:inline-flex;
    align-items:center;
    line-height:1;

    color:white;

    text-decoration:none;

    font-size:16px;

    font-weight:600;

    transition:.3s;

}

.navbar.scrolled .nav-links a{

    color:#222;

}

.navbar.scrolled .menu-toggle{

    color:#222;

}

.navbar.scrolled .nav-links a:hover{

    color:#008c33;

}

.nav-links a:hover{

    color:#86d993;

}

/* Logo */

.logo{

    display:flex;

    align-items:center;

    gap:15px;

    text-decoration:none;

}

.logo img,
img.logo,
.footer-logo{
    aspect-ratio: 986 / 1083;
    width: 100%;
    max-width: 200px;
    height: auto;
    display: block;
}

@media (max-width: 767px){
    .logo img,
    img.logo,
    .footer-logo{
        max-width: 120px;
    }

    .about-grid{
        grid-template-columns:1fr !important;
        gap:40px !important;
    }
    .about-showcase{
        grid-template-columns:minmax(80px, 110px) minmax(0, 1fr) minmax(80px, 110px) !important;
    }
}

@media (max-width: 992px){
    .about-grid{
        grid-template-columns:1fr !important;
        gap:40px !important;
    }
}

.logo span{

    color:white;

    font-size:25px;

    font-weight:700;

}

/* Menü (nur Desktop – auf Handy/Tablet wird das Menü in responsive.css ausgeblendet
   und durch das Burger-Menü ersetzt; ohne diese media query gewinnt diese Regel
   wegen höherer Spezifität gegenüber ".navbar ul{display:none}") */

@media (min-width: 993px){
.navbar > .nav-links{

    display:flex;

    list-style:none;

    gap:35px;

}
}

.navbar ul a{

    color:white;

    text-decoration:none;

    font-weight:600;

    transition:.3s;

    position:relative;

}

.navbar ul a::after{

    content:"";

    position:absolute;

    left:0;

    bottom:-8px;

    width:0;

    height:3px;

    background:#30d06a;

    transition:.3s;

}

.navbar ul a:hover{

    color:#8dffb6;

}

.navbar ul a:hover::after{

    width:100%;

}

/* ===== Dropdown-Menü ===== */

.nav-dropdown{
    position: relative;
}

.nav-dropdown-menu{
    display: none;
    position: absolute;
    top: 100%;
    left: 0;

    min-width: 200px;

    background: #fff;
    border-radius: 12px;
    padding: 8px 0;
    margin: 0;

    list-style: none;

    box-shadow: 0 10px 25px rgba(0,0,0,.15);

    z-index: 9999;
}

.nav-dropdown:hover > .nav-dropdown-menu{
    display: block;
}

.nav-dropdown-menu li{
    width:100%;
}

.nav-dropdown-menu li a{
    display:block;
    padding:12px 20px;
    color:#222 !important;
    background:#fff;
}

.nav-dropdown-menu li a:hover{
    background:#f3f3f3;
    color:#0b8d42 !important;
}

/* Button */

.mitglied{

    background:linear-gradient(135deg,var(--green),var(--green-light));

    color:white;

    text-decoration:none;

    padding:14px 28px;

    border-radius:40px;

    font-weight:700;

    transition:.3s;

}

.mitglied:hover{

    transform:translateY(-3px);

    box-shadow:0 15px 30px rgba(0,0,0,.25);

}

/* ===================================================
   HERO
=================================================== */

.hero{
    
    position:relative;

    height:100vh;

    background:
    linear-gradient(
        rgba(0,55,15,.45),
        rgba(0,0,0,.45)
    ),
    linear-gradient(#174d2f,#174d2f);

    background-size:cover;
    background-position:center;
    background-repeat:no-repeat;

    display:flex;
    justify-content:center;
    align-items:center;

    overflow:hidden;

}

.hero{
    background-attachment: fixed;
}

.hero{

    position:relative;

    background-attachment:fixed;

    overflow:hidden;

}

/* leichter Nebel Effekt */
.hero::after{

    content:"";

    position:absolute;
    inset:0;

    background:linear-gradient(
        to bottom,
        rgba(0,0,0,.2),
        rgba(0,0,0,.55)
    );

}

/* =======================================
   ABOUT
======================================= */

.about{

    background:white;

    padding:140px 0;

}

.about-grid{

    display:grid;

    grid-template-columns:42% 58%;

    gap:70px;

    align-items:center;

}

.section-tag{

    color:#008c33;

    font-weight:700;

    letter-spacing:3px;

    text-transform:uppercase;

}

.about h2{

    font-size:58px;

    margin:15px 0;

}

.about h3{

    font-size:28px;

    color:#555;

    margin-bottom:30px;

}

.about p{

    font-size:18px;

    line-height:1.8;

    color:#666;

    overflow-wrap:break-word;
    word-break:normal;
    white-space:normal;
    hyphens:none;
    max-width:100%;

}

.green-button{
    display:inline-block;
    background:linear-gradient(135deg,var(--green),var(--green-light));
    color:#fff;
    text-decoration:none;
    padding:14px 28px;
    border-radius:40px;
    font-weight:700;
    transition:.3s;
}

.green-button:hover{
    color:#fff;
    text-decoration:none;
}

.green-button,
.green-button:visited{
    color:#fff;
}

.green-button:hover{
    color:#fff;
}

/* =======================================
   Showcase
======================================= */

.about-showcase{

    display:grid;

    grid-template-columns:minmax(100px, 140px) minmax(0, 900px) minmax(100px, 140px);

    justify-content:center;

    align-items:center;

    gap:25px;

    width:100%;

    min-width:0;

}

.left-cards{

    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:25px;

}

.right-cards{

    display:flex;
    justify-content:center;
    align-items:center;
}

.about-image{

    width:100%;
}

.about-image img{

    width:100%;

    height:auto;

    display:block;

    border-radius:30px;

    box-shadow:0 35px 80px rgba(0,0,0,.18);

}

/* Auf großen Desktop-Bildschirmen mehr Platz für das Bild – Handy/Tablet bleiben unverändert. */
@media (min-width: 1200px){
    .container.about-grid{
        width:94%;
        max-width:1520px;
    }
    .about-grid{
        grid-template-columns:38% 62%;
    }
    .about-showcase{
        grid-template-columns:minmax(100px, 150px) minmax(0, 1100px) minmax(100px, 150px);
    }
}

.floating-card{

    width:160px;
    min-height:150px;

    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;

    background:white;

    border-radius:24px;

    box-shadow:0 20px 45px rgba(0,0,0,.12);

}

/* Grüner Lichteffekt */

.hero::before{

    content:"";

    position:absolute;

    inset:0;

    background:

    radial-gradient(
        circle at top right,
        rgba(25,180,80,.35),
        transparent 40%
    ),

    radial-gradient(
        circle at bottom left,
        rgba(255,255,255,.08),
        transparent 50%
    );

}

/* Inhalt */

.hero-content{

    position:relative;

    z-index:5;

    color:white;

    text-align:center;

    max-width:900px;

}

.hero-content p{

    font-size:22px;

    letter-spacing:6px;

    text-transform:uppercase;

}

.hero-content h1{

    font-size:88px;

    font-weight:800;

    margin:20px 0;

    text-shadow:0 10px 25px rgba(0,0,0,.35);

}

.hero-content h2{

    font-size:34px;

    font-weight:400;

    margin-bottom:50px;

}

/* Buttons */

.buttons{

    display:flex;

    justify-content:center;

    gap:25px;

}

.buttons a{

    text-decoration:none;

    padding:18px 42px;

    border-radius:60px;

    font-size:18px;

    font-weight:700;

    transition:.35s;

}

.buttons a:first-child{

    background:white;

    color:#0d8f3d;

}

.buttons a:last-child{

    border:2px solid white;

    color:white;

}

.buttons a:hover{

    transform:translateY(-6px);

    box-shadow:0 20px 40px rgba(0,0,0,.25);

}

/* =====================================
   Scroll Pfeil
===================================== */

.scroll-down{

    position:absolute;

    bottom:35px;

    left:50%;

    transform:translateX(-50%);

    color:white;

    font-size:38px;

    animation:scrollMove 2s infinite;

}

@keyframes scrollMove{

0%{

transform:translate(-50%,0);

}

50%{

transform:translate(-50%,12px);

}

100%{

transform:translate(-50%,0);

}

}

/* =====================================
   Bergsilhouette
===================================== */

.mountains{

    margin-top:-120px;

    position:relative;

    z-index:10;

}

.mountains svg{

    display:block;

    width:100%;

    height:170px;

}

/* ===========================
   ABTEILUNGEN
=========================== */

.dept-grid{

    display:grid;

    grid-template-columns:repeat(auto-fit, minmax(280px, 340px));

    justify-content:center;

    gap:30px;

}

.dept-card{

    position:relative;

    min-height:320px;

    border-radius:20px;

    overflow:hidden;

    display:flex;

    flex-direction:column;

    justify-content:flex-end;

    padding:30px;

    color:white;

    background-size:cover;

    background-position:center;

    transition:.35s;

    box-shadow:0 12px 30px rgba(0,0,0,.10);

}

.dept-card:hover{

    transform:translateY(-8px);

}

/* dunkler Verlauf für bessere Lesbarkeit */

.overlay{

    position:absolute;

    inset:0;

    background:linear-gradient(
        to top,
        rgba(0,0,0,.75),
        rgba(0,0,0,.25)
    );

    z-index:1;

}

/* Inhalt über dem Bild */

.dept-card h3,
.dept-card p,
.dept-card a{

    position:relative;

    z-index:2;

}

.dept-card h3{

    font-size:32px;

    margin-bottom:12px;

}

.dept-card p{

    margin-bottom:20px;

    line-height:1.6;

}

.dept-card a{

    display:inline-block;

    width:max-content;

    padding:10px 22px;

    border-radius:30px;

    background:white;

    color:#008c33;

    text-decoration:none;

    font-weight:700;

}

.dept-card a:hover{

    background:#008c33;

    color:white;

}

/* ===========================
   MITGLIED WERDEN (eine Sektion, genau 2 Buttons)
=========================== */

.join-cta{

    background:#f4faf4;
    padding:64px 0;
    text-align:center;

}

.join-cta h2{

    color:var(--green);
    font-size:clamp(26px,4vw,34px);
    margin:0 0 12px;

}

.join-cta p{

    color:#555;
    font-size:18px;
    max-width:560px;
    margin:0 auto 32px;

}

.join-cta-buttons{

    display:flex;
    flex-wrap:wrap;
    gap:16px;
    justify-content:center;

}

.join-cta-buttons .green-button{

    min-width:220px;

}

body.website-dark .join-cta{
    background:#101d15;
}
body.website-dark .join-cta h2{
    color:#7fe3a4;
}
body.website-dark .join-cta p{
    color:#c7d7cd;
}

.green-button.outline{
    background:var(--white);
    color:var(--green);
    border:2px solid var(--green);
}

.green-button.outline:hover{
    background:var(--green);
    color:var(--white);
}

@media (max-width:600px){
    .join-cta-buttons{
        flex-direction:column;
        align-items:stretch;
    }
    .join-cta-buttons .green-button{
        min-height:44px;
        font-size:18px;
    }
}

.turnen{

    background-image:url("../assets/turnen.jpg");

}

.aerobic{

    background-image:url("../assets/aerobic.jpg");

}

.karate{

    background-image:url("../assets/karate.jpg");

}

/* ================================
   FACTS / ZAHLEN
================================ */

.facts{

    padding:120px 0;

    background:white;

}

.facts-head{

    text-align:center;

    margin-bottom:70px;

}

.facts-head span{

    color:#008c33;

    font-weight:700;

    letter-spacing:3px;

}

.facts-head h2{

    font-size:48px;

    margin-top:10px;

}

/* GRID */

.facts-grid{

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:30px;

}

/* CARD */

.fact{

    text-align:center;

    padding:40px 20px;

    border-radius:25px;

    background:#f6f9f6;

    transition:.3s;

}

.fact:hover{

    transform:translateY(-8px);

    box-shadow:0 25px 50px rgba(0,0,0,.08);

}

.fact h3{

    font-size:64px;

    color:#008c33;

    margin-bottom:10px;

}

.fact p{

    font-size:18px;

    color:#555;

}

/* ================================
   NEWS
================================ */

.news{

    padding:120px 0;

    background:#f6f9f6;

}

.news-grid{

    display:grid;

    grid-template-columns:2fr 1fr;

    gap:40px;

}

/* BIG NEWS */

.news-main{
    display:flex;
    flex-direction:column;
    gap:28px;
}

.news-big{
    background:#fff;
    border-radius:20px;
    overflow:hidden;
    box-shadow:0 12px 30px rgba(0,0,0,.08);
}

.news-big img{
    width:100%;
    height:auto;
    display:block;
}

.news-text{
    padding:25px;
}

.news-text span{
    color:#008c33;
    font-weight:700;
    text-transform:uppercase;
    font-size:14px;
}

.news-text h3{
    margin:12px 0;
}

.news-text p{
    color:#666;
    line-height:1.7;
}

.news-text a{
    display:inline-block;
    margin-top:15px;
    color:#008c33;
    font-weight:600;
    text-decoration:none;
}

/* SIDE NEWS */

.news-side{
    display:flex;
    flex-direction:column;
    gap:20px;
}

.news-date{

    display:block;

    margin:6px 0 12px;

    color:#777;

    font-size:13px;

}

.news-file{

    margin-top:10px;

    color:#008c33;

    font-weight:600;

    font-size:14px;

}

.news-card{

    text-decoration:none;

    color:inherit;

    transition:.3s;

}

.news-card:hover{

    transform:translateY(-5px);

}

.news-grid{
    display:grid;
    grid-template-columns:2fr 1fr;
    gap:40px;
    align-items:start;
}

.news-grid.news-grid-no-large{
    grid-template-columns:1fr;
}

.news-grid.news-grid-no-large .news-side{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));
    gap:24px;
}

.news-card{
    display:flex;
    gap:18px;
    align-items:center;

    background:#fff;
    border-radius:20px;
    padding:15px;

    text-decoration:none;
    color:inherit;

    box-shadow:0 10px 25px rgba(0,0,0,.08);

    overflow:hidden;
}

.news-card img{

    width:120px;
    height:90px;

    object-fit:cover;

    border-radius:12px;

    flex-shrink:0;

}

.news-info{

    flex:1;
    min-width:0;

}

.news-info h4{
    overflow-wrap:break-word;
    word-break:break-word;
}

/* ================================
   EVENTS
================================ */

.events{

    padding:120px 0;

    background:white;

}

.events-grid{

    display:flex;

    flex-direction:column;

    gap:20px;

}

.event{

    display:flex;

    align-items:center;

    gap:20px;

    padding:20px;

    background:#f6f9f6;

    border-radius:20px;

    transition:.3s;

}

.event:hover{

    transform:translateX(8px);

    box-shadow:0 20px 40px rgba(0,0,0,.08);

}

.events-more{

    text-align:center;

    margin-top:50px;

}

.date{

    background:#008c33;

    color:white;

    width:70px;

    height:70px;

    border-radius:15px;

    display:flex;

    flex-direction:column;

    justify-content:center;

    align-items:center;

}

.date span{

    font-size:24px;

    font-weight:800;

}

.date small{

    font-size:12px;

}

.info h3{

    font-size:20px;

}

.info p{

    color:#666;

}

/* ================================
   FOOTER
================================ */

.footer{

    background:#0b3d1c;

    color:white;

    padding:80px 0;

}

.footer-grid{

    display:grid;

    grid-template-columns:2fr 1fr 1fr;

    gap:40px;

}

.footer a{

    display:block;

    color:#cdebd6;

    text-decoration:none;

    margin:8px 0;

    transition:.3s;

}

.footer a:hover{

    color:white;

}

.footer-bottom{

    margin-top:40px;

    padding-top:25px;

    border-top:1px solid rgba(255,255,255,.15);

    text-align:center;

    color:#cfcfcf;

    font-size:14px;

}

footer.footer{
    background:#0b3d1c;
    color:white;
    padding:80px 0 0;
    margin:0;
}

footer.footer .footer-bottom{
    margin-top:40px;
    padding:25px 0;
    background:#082f15;
}

body{
    min-height:100vh;
    display:flex;
    flex-direction:column;
}

.page-main{
    flex:1;
}

.footer{
    margin-top:0;
}

/* ====================================
   FINAL LOOK & FEEL
==================================== */

/* mehr Tiefe im Hintergrund */
body{
    background: linear-gradient(
        to bottom,
        #f3fbf4,
        #ffffff
    );
}

/* weichere Übergänge */
section{
    scroll-margin-top:100px;
}

/* alle Sektionen bekommen mehr Luft */
section{
    padding-left:20px;
    padding-right:20px;
}

/* bessere Titel */
.section-head h2{
    letter-spacing:-0.5px;
}

/* Buttons überall etwas moderner */
button, a{
    transition:.3s ease;
}

/* Animation Base */

.hidden{
    opacity:0;
    transform:translateY(60px);
    transition:all 1s ease;
}

.show{
    opacity:1;
    transform:translateY(0);
}

/* ================================
   MOBILE MENU
================================ */

.menu-toggle{

    display:none;

    align-items:center;
    justify-content:center;

    width:44px;
    height:44px;

    font-size:32px;

    color:white;

    cursor:pointer;

    position:relative;
    z-index:10000;

}

.menu-toggle.open{
    color:white!important;
}

/* =========================
   MOBILE FULLSCREEN MENÜ
========================= */

.mobile-nav{

    position:fixed;
    top:0;
    left:0;

    width:100%;
    height:100vh;
    height:100dvh;

    background:rgba(10,40,20,.97);

    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;

    gap:22px;
    padding:80px 24px 40px;
    box-sizing:border-box;

    overflow-y:auto;

    transform:translateX(100%);
    transition:.4s ease;

    z-index:9999;
}

.mobile-nav a{
    color:white;
    font-size:22px;
    text-decoration:none;
    min-height:44px;
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    text-align:center;
}

.mobile-nav.active{
    transform:translateX(0);
}

/* =========================
   MOBILE ANZEIGE
========================= */

@media (max-width: 992px){

    .navbar ul{
        display:none;
    }

    .menu-toggle{
        display:block;
    }

}

/* Schließen erfolgt über den Hamburger-Button (wechselt zu ✕), siehe .menu-toggle */

/* Smooth Animation Upgrade */
.mobile-nav{
    transition: transform .5s cubic-bezier(.77,0,.18,1);
}

.green-button, .mitglied{

    position:relative;
    overflow:hidden;

}

.green-button::after, .mitglied::after{

    content:"";

    position:absolute;
    top:0;
    left:-100%;

    width:100%;
    height:100%;

    background:rgba(255,255,255,.2);

    transition:.4s;

}

.green-button:hover::after, .mitglied:hover::after{
    left:100%;
}

body::before{

    content:"";

    position:fixed;
    top:0;
    left:0;

    width:100%;
    height:100%;

    background:radial-gradient(
        circle at top,
        rgba(13,143,61,.08),
        transparent 60%
    );

    pointer-events:none;

}

/* ===========================
   Einheitliche Abstände
=========================== */

section{
    padding:120px 0;
}

.container{
    width:90%;
    max-width:1300px;
    margin:auto;
}

.section-head{
    text-align:center;
    margin-bottom:70px;
}

.section-head span{
    color:#008c33;
    font-weight:700;
    letter-spacing:3px;
    text-transform:uppercase;
}

.section-head h2{
    font-size:clamp(26px, 7.5vw, 48px);
    margin-top:10px;
    color:#222;
    overflow-wrap:break-word;
    word-break:break-word;
    hyphens:auto;
    max-width:100%;
    padding:0 6px;
    box-sizing:border-box;
}

.dept-card,
.news-card,
.event-card{

    border-radius:22px;

    transition:all .35s ease;

    overflow:hidden;

    box-shadow:0 15px 35px rgba(0,0,0,.08);

}

.dept-card:hover,
.news-card:hover,
.event-card:hover{

    transform:translateY(-10px);

    box-shadow:0 25px 50px rgba(0,0,0,.15);

}

/* ==========================================
   UNTERSEITEN HERO
========================================== */

.page-hero{

    position:relative;

    height:420px;

    background:url("assets/geschichte-hero.jpg") center center/cover no-repeat;

    display:flex;

    justify-content:center;

    align-items:center;

}

.page-overlay{

    position:absolute;

    inset:0;

    background:rgba(0,0,0,.45);

}

.page-content{

    position:relative;

    text-align:center;

    color:white;

    z-index:2;

}

.page-content h1{

    font-size:60px;

    margin-bottom:20px;

}

.page-content p{

    font-size:22px;

}

/* =====================================
   GESCHICHTE
===================================== */

.history-intro{

    padding:120px 0;

    background:white;

}

.history-grid{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:80px;

    align-items:center;

}

.history-image img{

    width:100%;

    border-radius:24px;

    display:block;

    box-shadow:0 25px 60px rgba(0,0,0,.15);

}

.history-text h2{

    font-size:46px;

    margin:20px 0;

}

.history-text p{

    margin-bottom:20px;

    font-size:19px;

    line-height:1.8;

    color:#555;

}

/* ===========================
   Geschichte
=========================== */

.history{

    padding:120px 0;

    background:white;

}

.history-grid{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:70px;

    align-items:center;

}

.history-image img{

    width:100%;

    border-radius:20px;

    box-shadow:0 20px 40px rgba(0,0,0,.15);

}

.history-content p{

    margin-bottom:20px;

    line-height:1.8;

    color:#555;

}

/* ===========================
   Timeline
=========================== */

.timeline{

    background:#f8fbf8;

    padding:120px 0;

}

.timeline-item{

    display:grid;

    grid-template-columns:140px 1fr;

    gap:40px;

    margin-bottom:50px;

    align-items:start;

}

.year{

    background:#0b8d42;

    color:white;

    padding:20px;

    border-radius:12px;

    text-align:center;

    font-size:28px;

    font-weight:bold;

}

.text{

    background:white;

    padding:30px;

    border-radius:16px;

    box-shadow:0 10px 25px rgba(0,0,0,.08);

}

/* Vorstand */

.board{

padding:120px 0;

background:#f7faf7;

}

.board-grid{

display:grid;

grid-template-columns:repeat(auto-fit,minmax(280px,1fr));

gap:40px;

}

.board-card{

    background:white;

    border-radius:22px;

    padding:75px 25px 34px;

    text-align:center;

    box-shadow:0 12px 30px rgba(0,0,0,.08);

    transition:0.3s;

}

.board-card:hover{

    transform:translateY(-8px);

    box-shadow:0 25px 60px rgba(0,0,0,.12);

}

.board-card img{

    width:180px;
    height:180px;

    object-fit:cover;

    object-position:center 15%;

    border-radius:50%;

}

.contact-icons{

    display:flex;

    justify-content:center;

    gap:12px;

    margin-top:15px;

    flex-wrap:wrap;

}

.contact-icons a{

    display:flex;

    align-items:center;

    gap:6px;

    font-size:14px;

    color:#0b8d42;

    text-decoration:none;

    padding:8px 12px;

    border-radius:10px;

    background:#f2f8f3;

    transition:0.2s;

}

.contact-icons a:hover{

    background:#0b8d42;

    color:white;

    transform:scale(1.05);

}

.board-contact{

    margin-top:15px;

    font-size:13px;

    color:#555;

    line-height:1.4;

}

.board-contact p{

    margin-bottom:12px;

    display:flex;

    justify-content:center;

    align-items:center;

    gap:6px;

}

.address{

    font-size:13px;

    color:#555;

    margin-bottom:12px;

    line-height:1.4;

}

.board-info h3{

    margin:10px 0 5px;

    font-size:18px;

}

.board-info p{

    margin:4px 0;

    font-size:14px;

    color:#555;

}

.contact{

    padding:100px 0;

    background:#f7faf7;

}

.contact-grid{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:60px;

}

.contact-info p{

    margin-bottom:10px;

    color:#555;

}

.contact-form form{

    display:flex;

    flex-direction:column;

    gap:15px;

}

.contact-form input,
.contact-form textarea{

    padding:12px;

    border:1px solid #ddd;

    border-radius:10px;

    font-size:14px;

}

.contact-form button{

    padding:12px;

    background:#0b8d42;

    color:white;

    border:none;

    border-radius:10px;

    cursor:pointer;

}

.contact-form button:hover{

    background:#087033;

}

.map{

    padding:80px 0;

}

.map iframe{

    width:100%;

    height:350px;

    border:none;

    border-radius:12px;

}

.page-hero{

    padding:120px 0;

    background:#f0f3f1;

    text-align:center;

}

.contact-grid{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:60px;

}

.contact-info p{

    margin-bottom:10px;

    color:#555;

}

.contact-form input,
.contact-form textarea{

    width:100%;

    padding:12px;

    margin-bottom:12px;

    border:1px solid #ddd;

    border-radius:10px;

}

.contact-form button{

    background:#0b8d42;

    color:white;

    border:none;

    padding:12px;

    border-radius:10px;

    cursor:pointer;

}

.map iframe{

    width:100%;

    height:350px;

    border:none;

    border-radius:12px;

}

.footer-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:40px;
    padding:40px 0;
}

footer a{
    display:block;
    color:#555;
    text-decoration:none;
    margin-bottom:6px;
    font-size:14px;
}

footer{
    background:#f5f7f6;
    padding:40px 0;
    margin-top:60px;
}

footer h3, footer h4{
    margin-bottom:10px;
}

.navbar .btn{
    background:#0b8d42;
    color:white !important;
    padding:8px 14px;
    border-radius:8px;
}

.navbar .btn:hover{
    background:#087033;
}

/* =======================================
   ABTEILUNGSSEITEN
======================================= */

.intro-center{
    max-width:900px;
    margin:auto;
    text-align:center;
}

.intro-center h2{
    font-size:42px;
    color:#008c33;
    margin:15px 0;
}

.intro-center h3{
    color:#666;
    font-size:24px;
    margin-bottom:30px;
    font-weight:500;
}

.intro-center p{
    line-height:1.9;
    color:#555;
    margin-bottom:22px;
}

.intro-highlights{
    display:flex;
    justify-content:center;
    flex-wrap:wrap;
    gap:25px;
    margin-top:45px;
}

.highlight-box{
    width:180px;
    background:#fff;
    border-radius:18px;
    padding:25px;
    box-shadow:0 10px 25px rgba(0,0,0,.08);
    transition:.3s;
}

.highlight-box:hover{
    transform:translateY(-6px);
}

.highlight-box h4{
    color:#008c33;
    font-size:36px;
    margin-bottom:10px;
}

.highlight-box span{
    color:#666;
    font-weight:600;
}

.turnen-hero{
    background-image:url("../assets/turnen.jpg");
}

.aerobic-hero{
    background-image:url("../assets/aerobic.jpg");
}

.karate-hero{
    background-image:url("../assets/karate.jpg");
}

.section{
    padding:90px 0;
}

.section h2{
    text-align:center;
    margin-bottom:50px;
    color:#008c33;
}

.group-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
    gap:30px;
}

.group-card{

    background:#fff;

    border-radius:18px;

    padding:35px;

    box-shadow:0 10px 30px rgba(0,0,0,.08);

    transition:.3s;
}

.group-card:hover{

    transform:translateY(-8px);

    box-shadow:0 20px 40px rgba(0,0,0,.15);

}

.group-card h3{

    color:#008c33;

    margin-bottom:15px;

}

.times-table{

    width:100%;

    border-collapse:collapse;

    margin-top:30px;

}

.times-table th{

    background:#008c33;

    color:white;

    padding:16px;

    text-align:left;

}

.times-table td{

    padding:16px;

    border-bottom:2px solid #dcebe0;
    text-align:left;

}

.times-table tr:last-child td{
    border-bottom:none;
}

.times-table tr:hover{

    background:#f8f8f8;

}

.schedule-table td:last-child{
    font-weight:600;
    color:#008c33;
}

.schedule-table td small{
    display:block;
    margin-top:4px;
    color:#777;
    font-size:13px;
}

/* Trainer */

.trainer-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
    gap:30px;
}

.trainer-card{
    background:#fff;
    padding:35px;
    border-radius:20px;
    text-align:center;
    box-shadow:0 15px 35px rgba(0,0,0,.08);
    transition:.3s;
}

.trainer-card:hover{
    transform:translateY(-8px);
}

.trainer-card h3{
    color:#008c33;
    margin-bottom:8px;
}

.trainer-card p{
    margin:6px 0;
}

.trainer-mail{
    margin-top:16px;
    width:100%;
    text-align:center;
}

.trainer-mail a{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:6px;

    width:100%;

    color:#008c33;
    text-decoration:none;
    font-weight:600;
    font-size:13px;

    white-space:nowrap;
}

.trainer-mail a:hover{
    text-decoration:underline;
}

.join-section{

padding:100px 20px;

text-align:center;

background:#008c33;

color:white;

}

.join-section h2{

font-size:42px;

margin-bottom:20px;

color:white;

}

.join-section p{

font-size:20px;

margin-bottom:35px;

}

.gallery-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
    gap:25px;
    margin-top:40px;
}

.gallery-grid img{
    width:100%;
    height:260px;
    object-fit:cover;
    border-radius:18px;
    transition:.35s;
    box-shadow:0 10px 25px rgba(0,0,0,.12);
}

.gallery-grid img:hover{
    transform:scale(1.03);
}

.intro-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:60px;
    align-items:center;
}

.intro-grid img{
    width:100%;
    border-radius:20px;
}

.feature-grid{
display:flex;
flex-wrap:wrap;
justify-content:center;
gap:25px;
margin-top:40px;
}

.feature-card{
background:white;
padding:35px;
text-align:center;
border-radius:20px;
box-shadow:0 10px 25px rgba(0,0,0,.08);
transition:.3s;
flex:0 1 calc(25% - 18.75px);
min-width:220px;
}

.feature-card:hover{
transform:translateY(-8px);
box-shadow:0 20px 40px rgba(0,0,0,.15);
}

.faq-section{

    padding:100px 0;

}

.faq-item{

    margin-bottom:18px;

    border-radius:15px;

    overflow:hidden;

    box-shadow:0 10px 25px rgba(0,0,0,.08);

    background:#fff;

}

.faq-question{

    width:100%;

    padding:22px 30px;

    border:none;

    background:white;

    cursor:pointer;

    display:flex;

    justify-content:space-between;

    align-items:center;

    font-size:18px;

    font-weight:600;

    color:#008c33;

}

.faq-question span{

    font-size:28px;

    transition:.3s;

}

.faq-answer{

    max-height:0;

    overflow:hidden;

    transition:max-height .35s ease;

    padding:0 30px;

}

.faq-answer p{

    padding:0 0 25px;

    margin:0;

    color:#555;

    line-height:1.7;

}

.faq-item.active .faq-answer{

    max-height:200px;

}

.faq-item.active .faq-question span{

    transform:rotate(45deg);

}

.intro-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:60px;
    align-items:center;
}

.intro-text p{
    margin-bottom:20px;
    line-height:1.8;
    color:#555;
}

.intro-image img{
    width:100%;
    height:420px;
    object-fit:cover;
    border-radius:20px;
    box-shadow:0 15px 35px rgba(0,0,0,.15);
}

.intro-text h2{
    color:#008c33;
    margin-bottom:15px;
}

.intro-text p{
    line-height:1.8;
    color:#555;
}

.page-hero h1{
    color:#ffffff;
    text-shadow:0 6px 20px rgba(0,0,0,.55);
}

.page-hero p{
    color:#ffffff;
    text-shadow:0 4px 14px rgba(0,0,0,.55);
}

.page-hero::before{
    content:"";
    position:absolute;
    inset:0;
    background:rgba(0,0,0,.35);
    z-index:1;
}

.page-hero .hero-content{
    position:relative;
    z-index:2;
}

.page-hero{
    position:relative;

    height:380px;

    display:flex;
    justify-content:center;
    align-items:center;

    text-align:center;

    background-size:cover;
    background-position:center;
}

.page-hero::before{
    content:"";
    position:absolute;
    inset:0;
    background:rgba(0,0,0,.45);
}

.page-hero .hero-content{
    position:relative;
    z-index:2;
}

.page-hero h1{
    color:#fff;
    font-size:72px;
    font-weight:800;
    margin-bottom:20px;
    text-shadow:0 8px 25px rgba(0,0,0,.35);
}

.page-hero p{
    color:#fff;
    font-size:22px;
    letter-spacing:4px;
    text-transform:uppercase;
}

.page-hero{

    position:relative;

    height:380px;

    display:flex;

    justify-content:center;

    align-items:center;

    text-align:center;

    background-size:cover;

    background-position:center;

}

.page-hero::before{

    content:"";

    position:absolute;

    inset:0;

    background:rgba(0,0,0,.45);

}

.page-hero .hero-content{

    position:relative;

    z-index:2;

}

.page-hero h1{

    color:#fff;

    font-size:68px;

    font-weight:800;

    margin-bottom:18px;

    text-shadow:0 8px 20px rgba(0,0,0,.35);

}

.page-hero p{

    color:white;

    font-size:20px;

    letter-spacing:4px;

    text-transform:uppercase;

}

.geschichte-hero{
    background-image:none;background-color:#174d2f;
}

.aerobic-hero{
    background-image:none;background-color:#174d2f;
}

.karate-hero{
    background-image:none;background-color:#174d2f;
}

.vorstand-hero{
    background-image:none;background-color:#174d2f;
}

.kontakt-hero{
    background-image:none;background-color:#174d2f;
}

---------------Impressum--------------------------

.impressum-hero{
    background-image:
    linear-gradient(rgba(0,0,0,.45),rgba(0,0,0,.45)),
    linear-gradient(#174d2f,#174d2f);
}

.legal{

    max-width:900px;

    margin:auto;

    background:#fff;

    padding:50px;

    border-radius:20px;

    box-shadow:0 10px 30px rgba(0,0,0,.08);

}

.legal h2{

    margin-bottom:25px;

    color:#008c33;

}

.legal h3{

    margin-top:35px;

    margin-bottom:12px;

    color:#008c33;

}

.legal p{

    line-height:1.9;

    color:#555;

}

.legal a{

    color:#008c33;

    text-decoration:none;

    font-weight:600;

}

.legal a:hover{

    text-decoration:underline;

}

.impressum-hero{
    background:
        linear-gradient(rgba(0,0,0,.45), rgba(0,0,0,.45)),
        linear-gradient(#174d2f,#174d2f) !important;
}

-------------Datenschutz--------------------


.datenschutz-hero{

    background-image:none;background-color:#174d2f;

}

.legal{

    max-width:900px;

    margin:auto;

}

.legal h2{

    margin-bottom:30px;

}

.legal h3{

    margin-top:35px;

    color:#008c33;

}

.legal p{

    line-height:1.9;

    color:#555;

}

.datenschutz-hero{

    background:
        linear-gradient(rgba(0,0,0,.45), rgba(0,0,0,.45)),
        linear-gradient(#174d2f,#174d2f);

    background-size:cover;
    background-position:center;

}

-----------------------------------------

.formulare-hero{
    background:
        linear-gradient(rgba(0,0,0,.45), rgba(0,0,0,.45)),
        linear-gradient(#174d2f,#174d2f) !important;
}

/* ===========================
   DOWNLOADS
=========================== */

.download-grid{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(320px,1fr));

    gap:35px;

    margin-top:50px;

}

.download-card{

    background:#fff;

    padding:40px;

    border-radius:20px;

    box-shadow:0 15px 35px rgba(0,0,0,.08);

    text-decoration:none;

    color:#333;

    transition:.3s;

}

.download-card:hover{

    transform:translateY(-8px);

    box-shadow:0 20px 45px rgba(0,0,0,.12);

}

.download-icon{

    font-size:55px;

    margin-bottom:20px;

}

.download-card h3{

    color:#008c33;

    margin-bottom:15px;

}

.download-card p{

    color:#666;

    line-height:1.7;

    margin-bottom:25px;

}

.download-card span{

    display:inline-block;

    background:#008c33;

    color:white;

    padding:12px 22px;

    border-radius:30px;

    font-weight:700;

    transition:.3s;

}

.download-card:hover span{

    background:#14923e;

}

.event-download{

    margin-top:12px;

}

----------Event Download--------------

.event-download a{

    color:#008c33;

    font-weight:700;

    text-decoration:none;

}

.event-download a:hover{

    text-decoration:underline;

}