/* =================================================
BASE
================================================= */

*,
*::before,
*::after{
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
    font-size:18px;
}
html, body{
    overflow-x:hidden;
}

body{
    font-family:Arial, Helvetica, sans-serif;
    margin:0;
    background:#fff;
    color:#222;
    line-height:1.5;
}

.container{
    max-width:1300px;
    margin:auto;
    padding:0 20px;
}


/* =================================================
TYPOGRAPHY SCHRIFTEN BLAU
================================================= */

.text{ font-size:1rem; color:#222; }
.text-muted{ font-size:0.95rem; color:#666; }

.title{
    font-size:1.3rem;
    color:#1d6ed8;
    font-weight:bold;
}


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

.header{
    background:#fff;
    border-bottom:1px solid #eee;
    position:relative;
    z-index:1000;
}

.header-inner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:10px 0;
}

.logo img{
    height:120px;
    display:block;
}


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

.hero{
    background:rgba(0,0,0,0.45);
    padding:10px 0;
}

.hero-inner{
    max-width:100%;
    margin:auto;
    position:relative;
    height:420px;
    overflow:hidden;
}

.hero-image{
    width:95%;
    height:100%;
    object-fit:cover;
    border-radius:16px;
    display:block;
    margin: 0 auto;
}

.hero-content{
    position:absolute;
    top:50%;
    left:50%;
    transform:translate(-50%, -50%);
    text-align:center;
    color:#fff;
    background:rgba(0,0,0,0.45);
    padding:20px;
    border-radius:12px;
}


.hero-title{
    font-size:1.8rem;
}

.hero-subtitle{
    font-size:1rem;
}


/* =================================================
TABLET
================================================= */

@media (max-width:1024px){

    /* Hero etwas kleiner */
    .hero-inner{
        height:320px;
    }

    /* Header sauber umbrechen */
    .header-inner{
        flex-direction:column;
        align-items:center;
        gap:10px;
    }

    .logo img{
        height:70px;
        max-width:100%;
    }

    .nav{
        flex-wrap:wrap;
        justify-content:center;
        gap:10px;
    }

    /* Bilder begrenzen */
    img{
        max-width:100%;
        height:auto;
        display:block;
    }

    /* Grid absichern */
    .card-grid{
        grid-template-columns:repeat(2, 1fr);
    }

    /* Padding statt Breite */
    .container{
        padding:0 15px;
    }

}


/* =================================================
MAIN CONTAINER
================================================= */

.main-container{
max-width:900px;
margin:40px auto;
background:#eaedf0;
padding:30px;
border-radius:12px;
box-shadow:0 6px 18px rgba(200, 230, 255, 0.18);
text-align:center;
}

/* =================================================
MAIN CONTAINER HINWEIS EINTRAGSFORMULARE
================================================= */

.main-container-hinweis{
max-width:900px;
text-align:center;
margin:0 auto
}


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

.footer{
    width:100%;
    background:rgba(0,0,0,0.45);
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:10px;
    padding:10px;
    margin-top:100px;
}

.footer-links{
    display:flex;
    gap:30px;
}

.footer-links a{
    color:#fff;
    text-decoration:none;
    font-family:Verdana,sans-serif;
    font-size:16px;
}

/* socials */
.footer-socials{
    display:flex;
    justify-content:center;
    gap:22px;
    margin-top:10px;
}

.footer-socials a{
    width:44px;
    height:44px;
    background:#1a1a1a;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    transition:all 0.3s ease;
}

.social-icon{
    width:20px;
    height:20px;
    fill:#ccc;
    transition:all 0.3s ease;
}

.footer-socials a:hover{
    background:linear-gradient(135deg,#d4af37,#f5e6a5);
    transform:translateY(-4px);
    box-shadow:0 4px 12px rgba(212,175,55,0.3);
}

.footer-socials a:hover .social-icon{
    fill:#111;
}


/* =================================================
HEART
================================================= */

.heart-container{ text-align:center; margin-top:20px; }

.heart{
    display:inline-block;
    color:#f4f6f9;
    animation:pulse 2s infinite;
}

@keyframes pulse{
    0%{transform:scale(1)}
    50%{transform:scale(1.3)}
    100%{transform:scale(1)}
}


/* =================================================
BUTTON
================================================= */
.button-wrapper{
display:flex;
justify-content:center;
gap:15px;
flex-wrap:wrap;
}

.button{
background:#083b7f;
color:#fff;
border:none;
padding:10px 18px;
font-size:16px;
border-radius:6px;
cursor:pointer;
text-decoration:none;
display:inline-block;
margin-top:30px;
}

.button:hover{
background:#1558b0;
}


/* =================================================
INTRO TEXT DESIGN UND UEBERSCHRIFTEN DESIGN
================================================= */
.text-intro{
    text-align: center;
    max-width: 800px;
    margin: 20px auto;
    line-height: 1.6;
}

.section-title{
    text-align: center;
    margin-top: 50px;
}


/* =================================================
FEHLERMELDUNG KEIN SPORTVEREIN MIT DIESER SPORTART
================================================= */
.no-results-box{
  display: block;

  max-width: 800px;
  width: fit-content !important;

  margin: 50px auto;

  padding: 20px 25px;

  text-align: center;
  font-size: 18px;

  color: #b30000;
  background: #fff5f5;
  border: 1px solid #f2c2c2;
  border-radius: 12px;

  box-shadow: 0 4px 15px rgba(0,0,0,0.05);
}


/* =================================================
HINWEISE
================================================= */

.such-ergebnis-info{
text-align:center;
max-width:800px;
margin:0 auto 40px;
font-size:16px;
line-height:1.4;
}

.such-hinweis{
color:#be0a0a;
font-size:16px;
}

.such-ergebnis-info span:first-of-type{
font-size:18px;
}


/* =================================================
FILTER
================================================= */

.aktive-filter{
margin:20px auto 30px;
text-align:center;
font-size:16px;
}

.filter-label{
margin-right:5px;
}

.filter-badge{
display:inline-block;
background:#e8f4ec;
padding:6px 12px;
margin:4px;
border-radius:20px;
text-decoration:none;
font-size:14px;
color:#000;
font-weight:bold;
}

.filter-badge:hover{background:#d3ebdb;}


/* =================================================
SCROLL BUTTON
================================================= */

#scrollTopBtn{
    position:fixed;
    bottom:30px;
    right:30px;
    width:55px;
    height:55px;
    border-radius:50%;
    background:#083b7f;
    color:#fff;
    font-size:24px;
    display:flex;
    align-items:center;
    justify-content:center;
    text-decoration:none;
    box-shadow:0 4px 10px rgba(0,0,0,0.15);
    opacity:0;
    visibility:hidden;
    transition:.3s;
    z-index:999;
}

#scrollTopBtn:hover{
    background:#e0e0e0;
    transform:translateY(-3px);
}


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

.nav{
    display:flex;
    align-items:center;
    gap:20px;
}

.nav a,
.dropdown-btn{
    color:#000;
    text-decoration:none;
    background:none;
    border:none;
    cursor:pointer;
    font-size:1rem;
    padding:6px 4px;
    border-bottom:2px solid transparent;
    transition:0.2s;
}

.nav a:hover,
.dropdown-btn:hover{
    color:#1d6ed8;
    border-bottom:2px solid #1d6ed8;
}


/* =================================================
DROPDOWN DESKTOP
================================================= */

.dropdown{
    position:relative;
    z-index:9999;

}

.dropdown-content{
    position:absolute;
    top:100%;
    left:10%;
    transform:translateX(-50%);

    background:#fff;
    border-radius:8px;
    box-shadow:0 8px 22px rgba(0,0,0,0.12);
    padding:8px 12px;

    visibility:hidden;
    opacity:0;
    transition:0.2s;
    min-width:400px;
    text-align:left;
}

.dropdown-right .dropdown-content{
    left:auto;
    right:0;
    transform:none;
}

.dropdown.open .dropdown-content{
    visibility:visible;
    opacity:1;
}

.dropdown-content a{
    display:block;
    padding:10px 18px;
    font-size:0.9rem; 
    color:#222;
    text-align:left;
}

.dropdown-content a:hover{
    background:#f4f6f9;
}

@media (min-width:769px) and (max-width:1024px){
    .dropdown-content{
        min-width:unset;
        width:auto;
        max-width:calc(100% - 40px);
        left:50%;
        transform:translateX(-50%);
    }

    /* WICHTIG */
    .dropdown-right .dropdown-content{
        left:auto;
        right:0;
        transform:none;
    }

}


/* =========================================
   DESKTOP (DEFAULT)
========================================= */

.header-inner{
    display:flex;
    justify-content:space-between;
    align-items:center;
}

.logo img{
    height:100px;
}

/* Normale Navigation */
.nav{
    display:flex;
    gap:20px;
}

.nav a{
    text-decoration:none;
    color:#000;
}

/* Dropdown Desktop */
.dropdown{
    position:relative;
}


/* NUR Desktop Hover */
@media (min-width:769px){
    .dropdown:hover .dropdown-content{
        display:block;
    }
}

/* Mobile-only Elemente verstecken */
.nav-header,
.nav-close-btn{
    display:none;
}


/* =========================================
   MOBILE NAV
========================================= */
@media (max-width:768px){

    .header-inner{
        flex-direction: column;
        align-items: center;
        gap: 10px;
    }

    .logo img{
        height: 60px;
    }

    /* NAV unter Logo */
    .nav{
        position: static;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 10px;
        width: 100%;
    }

    /* Links */
    .nav a,
    .dropdown-btn{
        display: block;
        width: 100%;
        text-align: center;
        margin: 0 auto;
    }

    .nav a:hover,
    .dropdown-btn:hover{
        display: block;
        width: 100%;
        text-align: center;
        color: #000;
        border-bottom: none;
    }

    .nav br{
        display: none;
    }

    /* Dropdown */
    .dropdown{
        width: 100%;
    }

    .dropdown-content{
    position: static;
    display: none;

    width: 90%;
    max-width: 500px;
    margin: 0 auto;

    background: #f5f5f5;
    padding: 10px 0;

    left: 0;
    transform: none;
    box-sizing: border-box;
    }

    /* geöffnet */
    .dropdown.open .dropdown-content{
        display: block;
    }

    .dropdown-inner{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;

    width: 100%;
}

    .dropdown-content a{
    width: 100%;
    text-align: center;
    }

    /* ================================
    HERO
    ================================ */
    .hero-inner{
        width:97%;
        margin:0 auto;
        height:200px;
        border-radius:12px;
        overflow:hidden;
    }

    .hero-image{
        height:100%;
        object-fit:cover;
    }

    .hero-content{
        position:absolute;
        top:50%;
        left:50%;
        transform:translate(-50%, -50%);
        width:90%;
        padding:15px;
        background:rgba(0,0,0,0.45);
        color:#fff;
        border-radius:10px;
    }

    .hero-title{
        font-size:1.2rem;
    }

    .hero-subtitle{
        font-size:0.9rem;
    }

    .section-title{
        text-align:center;
        margin-top:50px;
        font-size:20px;
    }
}