﻿/* Grundlegende Stil-Resets für eine saubere Basis */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

@font-face {
  font-family: 'Kassel';
  src: url('/fonts/Kassel_Regular.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}

body {
    font-family: 'Kassel', sans-serif; /* Empfohlene Schriftart für alle Geräte */
    line-height: 1.6;
    color: #333;
    background-color: #f9f9f9;
    min-height: 100vh; /* Mindesthöhe des Bodys auf 100% des Viewports setzen */
    min-width: 360px;
}

#form1 {
    padding-top: 80px; /* Wichtig: Fügt Polsterung hinzu, um den Inhalt unterhalb des fixierten Headers anzuzeigen */
    display: flex; /* Für Sticky Footer */
    flex-direction: column; /* Für Sticky Footer */
    min-height: 100vh; /* Mindesthöhe des Bodys auf 100% des Viewports setzen */
}

/* ------------------- */
/* Header-Styling (Mobile First) */
/* ------------------- */
header {
    height: 80px;
    display: flex;
    justify-content: space-between; /* Logo links, Menü rechts */
    align-items: center;
    padding: 0 15px; /* Etwas weniger Padding auf kleinen Bildschirmen */
    background-color: #ffffff;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* Leichter Schatten */
    position: fixed; /* Header bleibt oben kleben */
    width: 100%;
    top: 0;
    left: 0;
    z-index: 1000; /* Stellt sicher, dass der Header über anderen Inhalten liegt */
    /*border-bottom-left-radius: 8px;
    border-bottom-right-radius: 8px;*/
}

.logo img {
    height: 64px; /* Logo-Größe anpassen */
}

/* Burger-Menü Styling (Immer sichtbar) */
.burger-menu {
    position: relative;
    cursor: pointer;
    padding: 10px;
}

.menu-icon {
    display: block; /* Immer sichtbar */
    width: 30px;
    height: 25px;
    position: relative;
    transition: all 0.3s ease-in-out;
    border-radius: 3px;
}

.bar {
    width: 100%;
    height: 3px;
    background-color: #333;
    position: absolute;
    transition: all 0.3s ease-in-out;
    border-radius: 1.5px;
}

.bar:nth-child(1) {
    top: 0;
}

.bar:nth-child(2) {
    top: 11px;
}

.bar:nth-child(3) {
    top: 22px;
}

/* Animation des Burger-Icons beim Öffnen */
#menu-toggle:checked + .menu-icon .bar:nth-child(1) {
    transform: translateY(11px) rotate(45deg);
}

#menu-toggle:checked + .menu-icon .bar:nth-child(2) {
    opacity: 0;
}

#menu-toggle:checked + .menu-icon .bar:nth-child(3) {
    transform: translateY(-11px) rotate(-45deg);
}

.menu-items {
    font-family: 'Kassel', sans-serif;
    display: none; /* Menü standardmäßig verstecken */
    position: absolute;
    top: 62px; /* Unter dem Header anzeigen */
    right: -20px;
    background-color: #ffffff;
    list-style: none;
    padding: 10px;
    border: 1px solid #ddd;
    min-width: 180px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    border-bottom-left-radius: 8px;
    border-bottom-right-radius: 8px;
    width: 100%; /* Menü auf voller Breite auf Mobilgeräten */
    /*left: 0;*/
    border-radius: 0; /* Keine Ecken auf voller Breite */
}

.menu-items li a {
    text-decoration: none;
    color: #333;
    padding: 10px 15px;
    display: block;
    transition: background-color 0.2s ease;
    border-radius: 5px;
}

.menu-items li a:hover {
    background-color: #e0e0e0;
}

/* Zeigt das Menü an, wenn die Checkbox aktiviert ist */
#menu-toggle:checked ~ .menu-items {
    display: block;
}

/* Versteckt die Checkbox selbst, da sie nur zur Steuerung dient */
#menu-toggle {
    display: none;
}

/* ------------------- */
/* Titelbild-Bereich (Mobile First) */
/* ------------------- */
.hero-image {
    height: 480px;
    background-image: url('/images/titelbild.webp');
    background-size: cover;
    background-position-x: center;
    background-position-y: 60%;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center; /* Zentriert den Inhalt vertikal */
    text-align: center;
    color: white;
    border-radius: 8px;
}

.hero-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 20px;
    background-color: rgba(0, 0, 0, 0.4); /* Halbtransparenter Hintergrund für bessere Lesbarkeit */
    border-radius: 10px; /* Abgerundete Ecken für den Inhaltsbereich */
}

.hero-content h1 {
    /*font-size: 2em; /* Kleinere Überschrift auf Mobilgeräten */
    font-size: clamp(1.5rem, calc(5vw + 0.5rem), 2.5rem);
    font-family: 'Kassel', sans-serif;    
    text-shadow: 2px 2px 6px rgba(0, 0, 0, 0.8); /* Starker Schatten für den Titel */
}

.hero-content h2 {
    margin-bottom: 20px;
    font-size: clamp(1rem, calc(5vw + 0.1rem), 1.3rem);
    font-family: 'Kassel', sans-serif;    
    text-shadow: 2px 2px 6px rgba(0, 0, 0, 0.8); /* Starker Schatten für den Titel */
}

.hero-menu ul {    
    list-style: none;
    display: flex;
    flex-direction: column; /* Menüpunkte untereinander auf kleinen Bildschirmen */
    gap: 10px; /* Weniger Abstand */
    background-color: rgba(0, 0, 0, 0.6); /* Dunklerer, transparenter Hintergrund */
    padding: 10px; /* Weniger Polsterung */
    border-radius: 8px; /* Rechteckige, abgerundete Form */
}

.hero-menu li a {
    font-family: 'Kassel', sans-serif;
    color: white;
    text-decoration: none;
    padding: 8px 15px;
    border-radius: 5px;
    transition: background-color 0.2s ease, transform 0.2s ease;
}

    .hero-menu li a:hover {
        /*background-color: rgba(255, 255, 255, 0.2);*/
        background-color: #2464A5;
        transform: translateY(-2px);
    }

.link-button {
    background-color: #222;
    color: white;
    padding: 12px 24px;
    border: none;
    border-radius: 6px;
    text-decoration: none;
    font-size: 16px;
    cursor: pointer;
    transition: background-color 0.3s ease;
    display: inline-block;
}

.link-button:hover {
    background-color: #2464A5;
}
.hero-menu-2-cont {
    background-color: #222;
    border-bottom-left-radius: 8px;
    border-bottom-right-radius: 8px;
    display: flex;
    justify-content: center;
    align-items: center;
}

.hero-menu-2 ul {
    list-style: none;
    display: flex;
    flex-direction: column; /* Menüpunkte untereinander auf kleinen Bildschirmen */
    gap: 5px; /* Weniger Abstand */
    padding: 10px; /* Weniger Polsterung */
    border-radius: 8px; /* Rechteckige, abgerundete Form */
}

.hero-menu-2 li a {
    font-family: 'Kassel', sans-serif;
    font-size: 14px;
    color: white;
    text-decoration: none;
    padding: 8px 12px;
    border-radius: 5px;
    transition: background-color 0.2s ease, transform 0.2s ease;
}

    .hero-menu-2 li a:hover {
        background-color: #2464A5; /* Hellerer Hintergrund bei Hover */
        transform: translateY(-2px); /* Leichter Hoch-Effekt bei Hover */
    }

/* ------------------- */
/* Hauptinhalt & Footer (Mobile First) */
/* ------------------- */
main {
    padding: 10px; /* Weniger Polsterung auf kleinen Bildschirmen */
    width: 96%; /* Standardmäßig volle Breite */
    margin: 10px auto; /* Zentriert den Inhalt, aber keine max-width hier */
    background-color: #ffffff;
    border-radius: 10px; /* Abgerundete Ecken */
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08); /* Dezenter Schatten */
    flex-grow: 1; /* Lässt den Hauptinhalt wachsen und den Footer nach unten drücken */
}

main p {
    margin-bottom: 1em; /* Absatzabstand */
    line-height: 1.8; /* Bessere Lesbarkeit */
}

footer {
    background-color: #222; /* Dunklerer Footer */
    color: #f0f0f0;
    text-align: center;
    padding: 25px;
    margin-top: 0; /* margin-top entfernt, da flexbox den Footer nach unten drückt */
    border-top-left-radius: 8px;
    border-top-right-radius: 8px;
    font-size: 14px;
}

footer a {
    color: #f0f0f0;
    text-decoration: none;
    margin: 0 5px;
    transition: color 0.2s ease;
}

footer a:hover {
    color: darkgrey; /* Blauer Farbton bei Hover */
}

/* ==================================== */
/* STYLES FÜR PERSONEN-SEITE */
/* ==================================== */

pagetitle {
    font-size: 2.0em;
    font-weight: bold;
    padding: 10px 10px 20px 0px;
    display: inline-block;
}

h2 {
    padding-bottom: 10px;
}

.personen-page-main {
    padding-top: 20px; /* Zusätzliche Polsterung oben für diese Seite, da kein Hero-Image */
}

.search-section {
    text-align: center; /* Zentriert das Suchfeld */
    margin-bottom: 30px;
    padding: 15px; /* Polsterung um das Suchfeld */
}

.large-search-field {
    width: 90%; /* Auf Mobilgeräten fast volle Breite */
    max-width: 600px; /* Maximale Breite auch auf größeren Bildschirmen */
    padding: 12px 20px;
    font-size: 1.1em;
    border: 1px solid #ddd;
    border-radius: 25px; /* Abgerundetes Suchfeld */
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.large-search-field:focus {
    outline: none;
    border-color: #007bff;
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1), 0 0 8px rgba(0, 123, 255, 0.2);
}

.input-field {
    width: 90%;
    max-width: 600px;
    padding: 12px 20px;
    font-size: 1.1em;
    border: 1px solid #ddd;
    border-radius: 5px;
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.input-field:focus {
    outline: none;
    border-color: #007bff;
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1), 0 0 8px rgba(0, 123, 255, 0.2);
}

.text-field {
    width: 90%;
    max-width: 600px;
    padding: 12px 20px;
    font-size: 1.1em;
    border: 1px solid #ddd;
    border-radius: 5px;
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.personen-cards-container {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    padding: 10px;
    justify-content: space-between;
    align-items: center;
}

.person-card {
    background-color: #ffffff;
    border: 1px solid #777;
    border-radius: 10px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    display: flex;
    flex-direction: row;
    justify-content: left;
    align-items: normal;
    text-align: left;
    padding: 10px;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    width: 100%;
    margin-bottom: 20px;
    position: relative;
}

.person-card:hover {
    transform: translateY(-5px); /* Leichter Schwebe-Effekt */
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
}

.card-icon {
    width: 128px;
    height: 128px;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 5px;
    color: #007bff;
    margin: 10px 20px 10px 10px;
}

.card-icon-2 {
    width: 72px;
    height: 72px;
}

.card-top-right {
    position: absolute;
    margin-top: -20px;
    right: 15px;
    font-size: 12px;
    background-color: #2464A5;
    color: white;
    padding: 2px 5px 0px 5px;
    border-radius: 5px;
    border: 1px #A9A9A9 solid;
}

.card-icon-print {
    position: absolute;
    bottom: 5px;
}

.card-icon-grp {
    width: 72px;
    height: 128px;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 10px;
    flex-direction: column;
}

.card-icon img, .card-icon-2 img {
    width: 100%;
    /*height: 100%;*/
}

.card-text {
    font-weight: bold;
    font-size: 0.9em;
    margin-bottom: 3px;
    color: #333;
    width: 100%;
}

.card-subtext {
    font-size: 0.8em;
    color: #666;
}

.search-container {
    margin: 20px 0px 20px 15px;
    display: flex;
}

.search-container-2 {
    margin: 10px 0px 20px 15px;
}

.search-container input, .search-container-2 input {
    height: 40px;
    font-size: 20px;
    margin-top: 10px;
    margin-right: 10px;
    padding: 5px;
    border: 1px solid #ccc;
    border-radius: 5px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}

/* ==================================== */
/* Media Queries für größere Bildschirme */
/* ==================================== */

@media (max-width: 430px) {
    .person-card {
        flex-direction: column;
        align-items: center;
    }
    .section-header {
        padding:5px;
    }
    .card-icon-grp {
        height:40px;
    }
}

/* Für Tablets und größere Bildschirme (mindestens 768px Breite) */
@media (min-width: 768px) {
    header {
        padding: 0 20px; /* Normales Padding auf größeren Bildschirmen */
    }

    /* Das Burger-Menü bleibt sichtbar, die folgenden Regeln wurden entfernt oder angepasst */
    /* .burger-menu .menu-icon, .burger-menu #menu-toggle { display: none; } */
    /* .burger-menu .menu-items { display: flex; position: static; ... } */

    .hero-content h1 {
        /*font-size: 3em; /* Größerer Titel auf Tablets/Desktops */
    }

    .hero-menu ul {
        flex-direction: row; /* Menüpunkte nebeneinander */
        gap: 25px; /* Normaler Abstand */
        padding: 12px 25px; /* Normales Polster */
    }

    .hero-menu-2 ul {
        flex-direction: row; /* Menüpunkte nebeneinander */
        gap: 10px; /* Normaler Abstand */
        padding: 5px 10px; /* Normales Polster */
    }

    main {
        max-width: 1400px; /* Maximale Breite für den Inhalt auf Desktops */
        /*padding: 40px 20px;*/ /* Mehr Polsterung */
    }
}

/* Für sehr große Bildschirme (optional, z.B. ab 1024px Breite) */
@media (min-width: 1024px) {
    .hero-content h1 {
        /*font-size: 3.5em; /* Noch größere Überschrift für sehr breite Bildschirme */
    }
}

@media (max-width: 1024px) {

}
