/*
 * Ersatz fuer Bootstrap 3.3.5 (entfernt im Rahmen von AUDIT.md Issue #12).
 * Bildet nur die Klassen/Selektoren nach, die dieses Projekt tatsaechlich
 * nutzt: das 12-Spalten-Grid, die hidden-* / visible-* Sichtbarkeits-Utilities,
 * sowie die strukturellen Basis-Regeln fuer Navbar/Dropdown/Buttons/Formulare,
 * auf denen css/custom.css bereits aufbaut. Werte 1:1 aus dem bisherigen
 * css/bootstrap.min.css uebernommen (Sicherungskopie unter
 * _backup/pre-bootstrap-removal-20260830/), damit sich am Erscheinungsbild
 * nichts aendert. Grid nutzt Flexbox statt Floats (einfacher, kein Clearfix
 * noetig) - visuell aequivalent fuer die hier verwendeten einfachen Layouts.
 */

/* Bootstrap setzte dies global (Teil des mitgelieferten Normalize-Resets) -
   die gesamte Prozent-Breiten-Rechnung des Grids setzt border-box voraus
   (Padding zaehlt zur deklarierten Breite dazu statt sie zu vergroessern). */
*, *::before, *::after {
    box-sizing: border-box;
}

/* Bootstrap setzte auch das (Normalize-Reset) - ohne das hat der Browser
   einen Standard-Rand von 8px um body, wodurch z.B. footer (custom.css:
   "position: absolute; width: 100%") 8px zu breit wird und einen
   horizontalen Scrollbalken erzeugt. */
body {
    margin: 0;
}

/* ---------- Container & Row ---------- */
.container {
    padding-right: 15px;
    padding-left: 15px;
    margin-right: auto;
    margin-left: auto;
}
@media (min-width: 768px) { .container { width: 750px; } }
@media (min-width: 992px) { .container { width: 970px; } }
@media (min-width: 1200px) { .container { width: 1170px; } }

.row {
    display: flex;
    flex-wrap: wrap;
    /* Ohne das strecken Flex-Items sich per Default (align-items: stretch)
       auf die Hoehe des hoechsten Geschwister-Elements - beim alten
       Float-Grid richtete sich jede Spalte nur nach ihrem eigenen Inhalt
       (z.B. Sidebar neben laengerem Hauptinhalt auf Film-Detailseiten). */
    align-items: flex-start;
    margin-right: -15px;
    margin-left: -15px;
}

/* ---------- Grid-Spalten (xs = Basis ohne Media Query, wie bei Bootstrap) ---------- */
.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6,
.col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12,
.col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6,
.col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12,
.col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6,
.col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12,
.col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6,
.col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
    position: relative;
    padding-right: 15px;
    padding-left: 15px;
    /* Flex-Items verweigern per Default das Schrumpfen unter die Breite ihres
       Inhalts (min-width: auto) - bei Bootstraps Float-Grid gab es das nicht.
       Ohne das kann z.B. langer unbrechbarer Text/Text eine Spalte aufsprengen. */
    min-width: 0;
}

.col-xs-1 { flex: 0 0 8.33333333%; max-width: 8.33333333%; }
.col-xs-2 { flex: 0 0 16.66666667%; max-width: 16.66666667%; }
.col-xs-3 { flex: 0 0 25%; max-width: 25%; }
.col-xs-4 { flex: 0 0 33.33333333%; max-width: 33.33333333%; }
.col-xs-5 { flex: 0 0 41.66666667%; max-width: 41.66666667%; }
.col-xs-6 { flex: 0 0 50%; max-width: 50%; }
.col-xs-7 { flex: 0 0 58.33333333%; max-width: 58.33333333%; }
.col-xs-8 { flex: 0 0 66.66666667%; max-width: 66.66666667%; }
.col-xs-9 { flex: 0 0 75%; max-width: 75%; }
.col-xs-10 { flex: 0 0 83.33333333%; max-width: 83.33333333%; }
.col-xs-11 { flex: 0 0 91.66666667%; max-width: 91.66666667%; }
.col-xs-12 { flex: 0 0 100%; max-width: 100%; }
.col-xs-offset-1 { margin-left: 8.33333333%; }
.col-xs-offset-2 { margin-left: 16.66666667%; }

@media (min-width: 768px) {
    .col-sm-1 { flex: 0 0 8.33333333%; max-width: 8.33333333%; }
    .col-sm-2 { flex: 0 0 16.66666667%; max-width: 16.66666667%; }
    .col-sm-3 { flex: 0 0 25%; max-width: 25%; }
    .col-sm-4 { flex: 0 0 33.33333333%; max-width: 33.33333333%; }
    .col-sm-5 { flex: 0 0 41.66666667%; max-width: 41.66666667%; }
    .col-sm-6 { flex: 0 0 50%; max-width: 50%; }
    .col-sm-7 { flex: 0 0 58.33333333%; max-width: 58.33333333%; }
    .col-sm-8 { flex: 0 0 66.66666667%; max-width: 66.66666667%; }
    .col-sm-9 { flex: 0 0 75%; max-width: 75%; }
    .col-sm-10 { flex: 0 0 83.33333333%; max-width: 83.33333333%; }
    .col-sm-11 { flex: 0 0 91.66666667%; max-width: 91.66666667%; }
    .col-sm-12 { flex: 0 0 100%; max-width: 100%; }
    .col-sm-offset-0 { margin-left: 0; }
    .col-sm-offset-1 { margin-left: 8.33333333%; }
    .col-sm-offset-2 { margin-left: 16.66666667%; }
}

@media (min-width: 992px) {
    .col-md-1 { flex: 0 0 8.33333333%; max-width: 8.33333333%; }
    .col-md-2 { flex: 0 0 16.66666667%; max-width: 16.66666667%; }
    .col-md-3 { flex: 0 0 25%; max-width: 25%; }
    .col-md-4 { flex: 0 0 33.33333333%; max-width: 33.33333333%; }
    .col-md-6 { flex: 0 0 50%; max-width: 50%; }
    .col-md-8 { flex: 0 0 66.66666667%; max-width: 66.66666667%; }
    .col-md-offset-1 { margin-left: 8.33333333%; }
}

@media (min-width: 1200px) {
    .col-lg-2 { flex: 0 0 16.66666667%; max-width: 16.66666667%; }
    .col-lg-3 { flex: 0 0 25%; max-width: 25%; }
    .col-lg-4 { flex: 0 0 33.33333333%; max-width: 33.33333333%; }
    .col-lg-6 { flex: 0 0 50%; max-width: 50%; }
    .col-lg-8 { flex: 0 0 66.66666667%; max-width: 66.66666667%; }
    .col-lg-10 { flex: 0 0 83.33333333%; max-width: 83.33333333%; }
    .col-lg-12 { flex: 0 0 100%; max-width: 100%; }
    .col-lg-offset-1 { margin-left: 8.33333333%; }
}

/* ---------- Sichtbarkeits-Utilities ---------- */
.hidden-xs { display: none !important; }
@media (min-width: 768px) { .hidden-xs { display: block !important; } }

@media (min-width: 768px) and (max-width: 991px) { .hidden-sm { display: none !important; } }

@media (min-width: 992px) and (max-width: 1199px) { .hidden-md { display: none !important; } }

@media (min-width: 1200px) { .hidden-lg { display: none !important; } }

.visible-xs { display: none !important; }
@media (max-width: 767px) { .visible-xs { display: block !important; } }

.visible-sm { display: none !important; }
@media (min-width: 768px) and (max-width: 991px) { .visible-sm { display: block !important; } }

.visible-md { display: none !important; }
@media (min-width: 992px) and (max-width: 1199px) { .visible-md { display: block !important; } }

.visible-lg { display: none !important; }
@media (min-width: 1200px) { .visible-lg { display: block !important; } }

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

/* ---------- Buttons (Basis - Farbvarianten wie .btn-theme bleiben in custom.css) ---------- */
.btn {
    display: inline-block;
    padding: 6px 12px;
    margin-bottom: 0;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.42857143;
    text-align: center;
    white-space: nowrap;
    vertical-align: middle;
    touch-action: manipulation;
    cursor: pointer;
    user-select: none;
    background-image: none;
    border: 1px solid transparent;
    border-radius: 4px;
}

/* ---------- Formulare (Basis - genutzt im Kontaktformular und Admin-Bereich) ---------- */
.form-group {
    margin-bottom: 15px;
}
.form-control {
    display: block;
    width: 100%;
    height: 34px;
    padding: 6px 12px;
    font-size: 14px;
    line-height: 1.42857143;
    color: #555;
    background-color: #fff;
    background-image: none;
    border: 1px solid #ccc;
    border-radius: 4px;
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
}

/* ---------- Screenreader-only ---------- */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
}

/* ---------- Navbar-Struktur (Optik/Farben bleiben in custom.css) ---------- */
.navbar {
    position: relative;
    min-height: 50px;
    margin-bottom: 20px;
    border: 1px solid transparent;
}
.navbar-header {
    float: left;
}
.navbar-brand {
    float: left;
    height: 50px;
    padding: 15px 15px;
    font-size: 18px;
    line-height: 20px;
}
.navbar-nav {
    margin: 7.5px -15px;
}
.navbar-right {
    float: right !important;
}
@media (min-width: 768px) {
    .navbar-header { margin-right: 0; margin-left: 0; }
    .navbar-nav { float: left; margin: 0; }
    .navbar-nav > li { float: left; }
    .navbar-right { margin-right: 0; }
    .navbar-collapse { width: auto; border-top: 0; box-shadow: none; }
    .navbar-toggle { display: none; }
}
.navbar-collapse {
    padding-right: 15px;
    padding-left: 15px;
    overflow-x: visible;
    border-top: 1px solid transparent;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);
}
.navbar-toggle {
    position: relative;
    float: right;
    padding: 9px 10px;
    margin-top: 8px;
    margin-right: 15px;
    margin-bottom: 8px;
    background-color: transparent;
    background-image: none;
    border: 1px solid transparent;
    border-radius: 4px;
}
.icon-bar {
    display: block;
    width: 22px;
    height: 2px;
    border-radius: 1px;
    background-color: #888;
}
.icon-bar + .icon-bar {
    margin-top: 4px;
}

.nav {
    padding-left: 0;
    margin-bottom: 0;
    list-style: none;
}
.nav > li {
    position: relative;
    display: block;
}
.nav > li > a {
    position: relative;
    display: block;
    padding: 10px 15px;
}

/* Collapse-/Dropdown-Mechanik, die js/nav.js ueber Klassen ansteuert */
.collapse {
    display: none;
}
.collapse.in {
    display: block;
}
.dropdown {
    position: relative;
}
.dropdown-toggle:focus {
    outline: 0;
}
.dropdown-menu {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 1000;
    display: none;
    float: left;
    min-width: 160px;
    padding: 5px 0;
    margin: 2px 0 0;
    font-size: 14px;
    text-align: left;
    list-style: none;
    background-color: #fff;
    background-clip: padding-box;
    border: 1px solid rgba(0, 0, 0, .15);
    border-radius: 4px;
    box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
}
.dropdown-menu > li > a {
    display: block;
    padding: 3px 20px;
    clear: both;
    font-weight: 400;
    line-height: 1.42857143;
    color: #333;
    white-space: nowrap;
}
.dropdown-menu > li > a:focus,
.dropdown-menu > li > a:hover {
    color: #262626;
    text-decoration: none;
    background-color: #f5f5f5;
}
.open > .dropdown-menu {
    display: block;
}
/* Bootstraps eigener Breakpoint fuer "Dropdown wird Teil des aufgeklappten mobilen Menues" -
   bewusst bei 767px belassen (nicht beim custom 980px-Navbar-Breakpoint aus custom.css),
   weil das schon immer der tatsaechlich wirksame Wert war. */
@media (max-width: 767px) {
    .navbar-nav .open .dropdown-menu {
        position: static;
        float: none;
        width: auto;
        margin-top: 0;
        background-color: transparent;
        border: 0;
        box-shadow: none;
    }
    .navbar-nav .open .dropdown-menu > li > a {
        padding: 5px 15px 5px 25px;
        line-height: 20px;
    }
}

.caret {
    display: inline-block;
    width: 0;
    height: 0;
    margin-left: 2px;
    vertical-align: middle;
    border-top: 4px solid;
    border-right: 4px solid transparent;
    border-left: 4px solid transparent;
}
