/******************************************************************************
 * Theme "campus" für Admidio 5 – Stil der Vereinswebseite
 *
 * Lädt das Standard-Theme "simple" und überschreibt danach nur Farben,
 * Schriften und Formen. Templates kommen über theme_fallback = simple.
 *****************************************************************************/
@import url("../../simple/css/admidio.css");

/* Schriften liegen im Theme (fonts/, SIL Open Font License), damit keine Anfragen an Google gehen */
@font-face {
    font-family: "DM Sans";
    font-style: normal;
    font-weight: 100 1000;
    font-display: swap;
    src: url("../fonts/dm-sans-latin-wght-normal.woff2") format("woff2");
}

@font-face {
    font-family: "DM Sans";
    font-style: italic;
    font-weight: 100 1000;
    font-display: swap;
    src: url("../fonts/dm-sans-latin-wght-italic.woff2") format("woff2");
}

@font-face {
    font-family: "Caveat";
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url("../fonts/caveat-latin-600-normal.woff2") format("woff2");
}

@font-face {
    font-family: "Caveat";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url("../fonts/caveat-latin-700-normal.woff2") format("woff2");
}

/***********************************/
/* Palette der Webseite */
/***********************************/
:root {
    --campus-blue: #2E5FA1;
    --campus-blue-dark: #1E3F6E;
    --campus-blue-light: #4A7FCC;
    --campus-blue-pale: #E8F0FA;
    --campus-blue-muted: #C5D8EE;
    --campus-off-white: #F7F9FC;
    --campus-text: #1A2B42;
    --campus-text-light: #5A6E85;
    --campus-accent: #E8A838;
    --campus-radius: 16px;
    --campus-radius-sm: 8px;
    --campus-border: rgba(46, 95, 161, 0.08);
}

/* html:root ist spezifischer als :root. So gewinnt die Palette auch gegen den <style>-Block,
   den Admidio aus den Einstellungen "Primärfarbe"/"Sekundärfarbe" nach diesem CSS einfügt
   (PagePresenter, color_primary/color_secondary). */
html:root {
    --bs-primary: var(--campus-blue);
    --bs-primary-rgb: 46, 95, 161;
    --bs-secondary: var(--campus-blue-dark);
    --bs-secondary-rgb: 30, 63, 110;
    --bs-tertiary: var(--campus-blue-pale);
    --bs-tertiary-rgb: 232, 240, 250;
    --bs-body-color: var(--campus-text);
    --bs-body-bg: var(--campus-off-white);
    --bs-link-color: var(--campus-blue);
    --bs-link-color-rgb: 46, 95, 161;
    --bs-link-hover-color: var(--campus-blue-dark);
    --bs-link-hover-color-rgb: 30, 63, 110;
    --bs-focus-ring-color: var(--campus-blue-muted);
    --bs-border-radius: var(--campus-radius-sm);
    --bs-body-font-family: "DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;

    --admidio-header-font-color: var(--campus-blue-dark);
    --admidio-header-link-color: var(--campus-text-light);
    --admidio-header-link-color-hover: var(--campus-blue);
    --admidio-menu-bg-color-hover: var(--campus-blue-pale);
    --admidio-menu-font-color-hover: var(--campus-blue-dark);
}

body {
    font-family: var(--bs-body-font-family);
    color: var(--campus-text);
    background-color: var(--campus-off-white);
}

h1, h2, h3, h4, h5, h6, .admidio-module-headline {
    color: var(--campus-blue-dark);
    font-weight: 700;
    letter-spacing: -0.02em;
}

/***********************************/
/* Kopfleiste wie Webseiten-Navigation */
/***********************************/
#adm_main_navbar {
    color: var(--campus-blue-dark);
    background-color: rgba(255, 255, 255, 0.85);
    -webkit-backdrop-filter: blur(20px);
    backdrop-filter: blur(20px);
    border-bottom: 1px solid var(--campus-border);
    font-weight: 700;
    font-size: 1rem;
}

#adm_main_navbar .navbar-brand img {
    max-height: 44px !important; /* index.tpl setzt max-height inline aus den Einstellungen */
    width: auto;
}

#adm_headline_organization,
#adm_headline_membership {
    font-family: "Caveat", cursive;
    font-size: 1.6rem;
    font-weight: 700;
    color: var(--campus-blue-dark);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
}

#adm_navbar_nav a {
    font-weight: 500;
}

/***********************************/
/* Seitenleiste */
/***********************************/
.admidio-sidebar {
    background-color: #FFFFFF;
    border-right: 1px solid var(--campus-border);
}

.admidio-headline-mobile-menu {
    color: var(--campus-blue-dark);
}

.admidio-menu-header {
    color: var(--campus-text-light);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    padding: 1rem 1rem 0.35rem;
}

.admidio-menu-list .nav-item {
    padding: 0 0.5rem;
}

.admidio-menu-list a {
    color: var(--campus-text-light);
    font-weight: 500;
    border-radius: var(--campus-radius-sm);
    transition: background-color 0.2s, color 0.2s;
}

.admidio-menu-list a:hover,
.admidio-menu-list a:focus-visible {
    color: var(--campus-blue-dark);
    background-color: var(--campus-blue-pale);
}

.admidio-menu-list a .badge {
    background-color: var(--campus-blue) !important;
    color: #FFFFFF !important;
}

/***********************************/
/* Buttons */
/***********************************/
.btn {
    border-radius: 50px;
    font-weight: 600;
    padding-left: 1.1rem;
    padding-right: 1.1rem;
    transition: background-color 0.2s, border-color 0.2s, transform 0.2s, box-shadow 0.2s;
}

.btn-primary, .admidio-menu-function-node .nav-link {
    background-color: var(--campus-blue);
    border-color: var(--campus-blue);
    color: #FFFFFF;
}

.btn-primary:hover, .btn-primary:focus-visible,
.admidio-menu-function-node .nav-link:hover {
    background-color: var(--campus-blue-dark);
    border-color: var(--campus-blue-dark);
    color: #FFFFFF;
    transform: translateY(-1px);
}

.btn-outline-primary {
    color: var(--campus-blue);
    border-color: var(--campus-blue);
}

.btn-outline-primary:hover {
    color: #FFFFFF !important; /* simple setzt color: var(--bs-primary) !important */
    background-color: var(--campus-blue);
}

.btn-secondary {
    background-color: var(--campus-blue-pale);
    border-color: var(--campus-blue-pale);
    color: var(--campus-blue-dark);
}

.btn-secondary:hover {
    background-color: var(--campus-blue-muted);
    border-color: var(--campus-blue-muted);
    color: var(--campus-blue-dark);
}

/* Icon-Buttons und Button-Gruppen nicht als Pille verzerren */
.btn-group > .btn, .input-group > .btn, .btn-link {
    border-radius: var(--campus-radius-sm);
}

/***********************************/
/* Karten */
/***********************************/
.card {
    --bs-card-border-radius: var(--campus-radius);
    --bs-card-inner-border-radius: calc(var(--campus-radius) - 1px);
    --bs-card-border-color: rgba(46, 95, 161, 0.06);
    --bs-card-cap-bg: var(--campus-blue-pale);
    background-color: #FFFFFF;
}

/* simple färbt Übersichtskarten mit --bs-tertiary; auf der Webseite sind Karten weiß */
.admidio-card {
    background-color: #FFFFFF;
    border: 1px solid rgba(46, 95, 161, 0.06);
    border-radius: var(--campus-radius);
}

.admidio-card li {
    background-color: transparent;
}

.card-header {
    color: var(--campus-blue-dark);
    font-weight: 600;
}

.admidio-overview-plugin .card {
    transition: transform 0.35s ease, box-shadow 0.35s ease;
}

.admidio-overview-plugin .card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 36px rgba(46, 95, 161, 0.1);
}

/***********************************/
/* Formulare */
/***********************************/
.form-control, .form-select {
    border-radius: var(--campus-radius-sm);
    border-color: var(--campus-blue-muted);
}

.form-control:focus, .form-select:focus, .form-check-input:focus {
    border-color: var(--campus-blue-light);
    box-shadow: 0 0 0 0.25rem var(--campus-blue-muted);
}

.form-check-input:checked {
    background-color: var(--campus-blue);
    border-color: var(--campus-blue);
}

/***********************************/
/* Tabellen */
/***********************************/
/* Über die Tabellen-Variablen, weil DataTables die Zellfarbe mit
   "table.table.dataTable > :not(caption) > * > *" (spezifischer) setzt */
.table > thead {
    --bs-table-bg: var(--campus-blue-pale);
    --bs-table-color: var(--campus-blue-dark);
}

.table thead th {
    font-weight: 600;
    border-bottom-color: var(--campus-blue-muted);
}

.table-hover > tbody > tr:hover > * {
    --bs-table-bg-state: var(--campus-blue-pale);
}

/***********************************/
/* Sonstiges */
/***********************************/
.page-link {
    color: var(--campus-blue);
}

.active > .page-link, .page-link.active {
    background-color: var(--campus-blue);
    border-color: var(--campus-blue);
}

.nav-tabs .nav-link.active, .nav-pills .nav-link.active {
    color: var(--campus-blue-dark);
}

.nav-pills .nav-link.active {
    background-color: var(--campus-blue-pale);
}

.alert-warning {
    border-left: 4px solid var(--campus-accent);
}

.modal-content, .dropdown-menu {
    border-radius: var(--campus-radius);
    border-color: var(--campus-border);
}

/* Cookie-Hinweis: cookieconsent setzt die Farben als Inline-Style (cookie_note.tpl) */
.cc-window {
    background-color: var(--campus-blue-dark) !important;
    font-family: var(--bs-body-font-family);
}

.cc-window .cc-btn {
    background-color: #FFFFFF !important;
    color: var(--campus-blue-dark) !important;
    border-radius: 50px;
    font-weight: 600;
}

.cc-window .cc-btn:hover {
    background-color: var(--campus-blue-pale) !important;
}
