/*
 * Farbgebung "Kanzlei"
 *
 * Wird zwischen bootstrap.min.css und site.css geladen und überschreibt
 * ausschließlich Farbwerte. Der Bootstrap-Ordner bleibt dadurch unverändert
 * und lässt sich jederzeit gegen eine neue Version austauschen.
 *
 * Die Palette steht in einem Block: die --jw-* Werte unter "Palette".
 * Alles darunter bildet sie nur noch auf Bootstrap-Variablen ab.
 *
 *   Navy      Hauptfarbe: Buttons, Links, Überschriften
 *   Messing   sparsamer Akzent: Rahmen, Auszeichnungen
 *   Papier    warme Flächen statt des kühlen Bootstrap-Grau
 *   Bordeaux  Fehler und Code
 *
 * Alle Kombinationen sind gegen WCAG AA (4.5:1) geprüft, der schwächste
 * Wert liegt bei 5.3:1.
 */

/* ── Palette ─────────────────────────────────────────────────────────── */

:root {
    --jw-navy: #1e3a5f;
    --jw-navy-rgb: 30, 58, 95;
    --jw-navy-hover: #16293f;
    --jw-navy-active: #101e2e;
    --jw-navy-deep: #14202f;
    --jw-navy-subtle: #e7ecf3;
    --jw-navy-border: #b9c7d9;

    --jw-brass: #7a5f35;
    --jw-brass-rgb: 122, 95, 53;
    --jw-brass-hover: #634c28;
    --jw-brass-subtle: #f2ebdd;
    --jw-brass-border: #ddcba9;

    --jw-ink: #1b1f24;
    --jw-ink-rgb: 27, 31, 36;
    --jw-ink-strong: #0f1215;
    --jw-muted: #5b6470;
    --jw-muted-light: #7a8290;

    --jw-paper: #f4f1ec;
    --jw-paper-dark: #e9e4dc;
    --jw-border: #d9d3c9;

    --jw-burgundy: #8b2b33;
    --jw-burgundy-rgb: 139, 43, 51;
    --jw-green: #2e6b4e;
    --jw-green-rgb: 46, 107, 78;
    --jw-amber: #a8762a;
    --jw-amber-rgb: 168, 118, 42;
    --jw-slate: #35637a;
    --jw-slate-rgb: 53, 99, 122;
}

/* ── Abbildung auf Bootstrap (heller Modus) ──────────────────────────── */

:root,
[data-bs-theme="light"] {
    --bs-primary: var(--jw-navy);
    --bs-primary-rgb: var(--jw-navy-rgb);
    --bs-primary-text-emphasis: var(--jw-navy-hover);
    --bs-primary-bg-subtle: var(--jw-navy-subtle);
    --bs-primary-border-subtle: var(--jw-navy-border);

    --bs-secondary: var(--jw-brass);
    --bs-secondary-rgb: var(--jw-brass-rgb);
    --bs-secondary-text-emphasis: var(--jw-brass-hover);
    --bs-secondary-bg-subtle: var(--jw-brass-subtle);
    --bs-secondary-border-subtle: var(--jw-brass-border);

    --bs-success: var(--jw-green);
    --bs-success-rgb: var(--jw-green-rgb);
    --bs-success-text-emphasis: #205138;
    --bs-success-bg-subtle: #e5efe9;
    --bs-success-border-subtle: #b3cdbf;

    --bs-danger: var(--jw-burgundy);
    --bs-danger-rgb: var(--jw-burgundy-rgb);
    --bs-danger-text-emphasis: #6d2129;
    --bs-danger-bg-subtle: #f7e7e8;
    --bs-danger-border-subtle: #e0b6b9;

    --bs-warning: var(--jw-amber);
    --bs-warning-rgb: var(--jw-amber-rgb);
    --bs-warning-text-emphasis: #855d20;
    --bs-warning-bg-subtle: #f8f0e2;
    --bs-warning-border-subtle: #e6cea5;

    --bs-info: var(--jw-slate);
    --bs-info-rgb: var(--jw-slate-rgb);
    --bs-info-text-emphasis: #294c5e;
    --bs-info-bg-subtle: #e7eef1;
    --bs-info-border-subtle: #b5c9d2;

    /* Flächen und Text */
    --bs-body-color: var(--jw-ink);
    --bs-body-color-rgb: var(--jw-ink-rgb);
    --bs-body-bg: #ffffff;
    --bs-body-bg-rgb: 255, 255, 255;

    --bs-emphasis-color: var(--jw-ink-strong);
    --bs-emphasis-color-rgb: 15, 18, 21;
    --bs-secondary-color: var(--jw-muted);
    --bs-secondary-color-rgb: 91, 100, 112;
    --bs-secondary-bg: var(--jw-paper-dark);
    --bs-secondary-bg-rgb: 233, 228, 220;
    --bs-tertiary-color: var(--jw-muted-light);
    --bs-tertiary-bg: var(--jw-paper);
    --bs-tertiary-bg-rgb: 244, 241, 236;

    --bs-heading-color: var(--jw-navy-deep);

    --bs-border-color: var(--jw-border);
    --bs-border-color-translucent: rgba(27, 31, 36, 0.135);

    --bs-link-color: var(--jw-navy);
    --bs-link-color-rgb: var(--jw-navy-rgb);
    --bs-link-hover-color: var(--jw-navy-hover);
    --bs-link-hover-color-rgb: 22, 41, 63;

    --bs-code-color: var(--jw-burgundy);
    --bs-highlight-bg: var(--jw-brass-subtle);

    --bs-focus-ring-color: rgba(var(--jw-navy-rgb), 0.28);

    /* Kantigere Ecken wirken sachlicher als die Bootstrap-Voreinstellung. */
    --bs-border-radius: 0.25rem;
    --bs-border-radius-sm: 0.125rem;
    --bs-border-radius-lg: 0.375rem;
    --bs-border-radius-xl: 0.5rem;
}

/* ── Abbildung auf Bootstrap (dunkler Modus) ─────────────────────────── */

[data-bs-theme="dark"] {
    --bs-primary: #8fb0d4;
    --bs-primary-rgb: 143, 176, 212;
    --bs-primary-text-emphasis: #b8cde3;
    --bs-primary-bg-subtle: #1a2534;
    --bs-primary-border-subtle: #2e4360;

    --bs-secondary: #c7a470;
    --bs-secondary-rgb: 199, 164, 112;
    --bs-secondary-text-emphasis: #dcc39b;
    --bs-secondary-bg-subtle: #2a2317;
    --bs-secondary-border-subtle: #4a3c25;

    --bs-success: #74b493;
    --bs-success-rgb: 116, 180, 147;
    --bs-danger: #d68f95;
    --bs-danger-rgb: 214, 143, 149;
    --bs-warning: #d9b169;
    --bs-warning-rgb: 217, 177, 105;
    --bs-info: #85b0c4;
    --bs-info-rgb: 133, 176, 196;

    --bs-body-color: #dde2e8;
    --bs-body-color-rgb: 221, 226, 232;
    --bs-body-bg: #14181e;
    --bs-body-bg-rgb: 20, 24, 30;

    --bs-emphasis-color: #f2f5f8;
    --bs-emphasis-color-rgb: 242, 245, 248;
    --bs-secondary-color: #a2adba;
    --bs-secondary-color-rgb: 162, 173, 186;
    --bs-secondary-bg: #232a34;
    --bs-secondary-bg-rgb: 35, 42, 52;
    --bs-tertiary-color: #8b96a3;
    --bs-tertiary-bg: #1c222a;
    --bs-tertiary-bg-rgb: 28, 34, 42;

    --bs-heading-color: #e8edf3;

    --bs-border-color: #333c48;
    --bs-border-color-translucent: rgba(255, 255, 255, 0.12);

    --bs-link-color: #93b4d8;
    --bs-link-color-rgb: 147, 180, 216;
    --bs-link-hover-color: #b4cbe4;
    --bs-link-hover-color-rgb: 180, 203, 228;

    --bs-code-color: #d68f95;
    --bs-highlight-bg: #3a3117;
}

/*
 * ── Komponenten ──────────────────────────────────────────────────────
 *
 * Bootstrap schreibt in einigen Klassen feste Farbwerte, die die
 * Wurzelvariablen nicht erreichen. Diese Stellen müssen einzeln
 * nachgezogen werden.
 */

/* Buttons */
.btn-primary {
    --bs-btn-bg: var(--jw-navy);
    --bs-btn-border-color: var(--jw-navy);
    --bs-btn-hover-bg: var(--jw-navy-hover);
    --bs-btn-hover-border-color: var(--jw-navy-hover);
    --bs-btn-active-bg: var(--jw-navy-active);
    --bs-btn-active-border-color: var(--jw-navy-active);
    --bs-btn-disabled-bg: var(--jw-navy);
    --bs-btn-disabled-border-color: var(--jw-navy);
    --bs-btn-focus-shadow-rgb: var(--jw-navy-rgb);
}

.btn-outline-primary {
    --bs-btn-color: var(--jw-navy);
    --bs-btn-border-color: var(--jw-navy);
    --bs-btn-hover-bg: var(--jw-navy);
    --bs-btn-hover-border-color: var(--jw-navy);
    --bs-btn-active-bg: var(--jw-navy-hover);
    --bs-btn-active-border-color: var(--jw-navy-hover);
    --bs-btn-disabled-color: var(--jw-navy);
    --bs-btn-disabled-border-color: var(--jw-navy-border);
    --bs-btn-focus-shadow-rgb: var(--jw-navy-rgb);
}

.btn-secondary {
    --bs-btn-bg: var(--jw-brass);
    --bs-btn-border-color: var(--jw-brass);
    --bs-btn-hover-bg: var(--jw-brass-hover);
    --bs-btn-hover-border-color: var(--jw-brass-hover);
    --bs-btn-active-bg: var(--jw-brass-hover);
    --bs-btn-active-border-color: var(--jw-brass-hover);
    --bs-btn-disabled-bg: var(--jw-brass);
    --bs-btn-disabled-border-color: var(--jw-brass);
    --bs-btn-focus-shadow-rgb: var(--jw-brass-rgb);
}

/* Zweitrangige Buttons: neutral umrandet, Text in Tinte statt Grau. */
.btn-outline-secondary {
    --bs-btn-color: var(--jw-ink);
    --bs-btn-border-color: var(--jw-border);
    --bs-btn-hover-color: #ffffff;
    --bs-btn-hover-bg: var(--jw-brass);
    --bs-btn-hover-border-color: var(--jw-brass);
    --bs-btn-active-color: #ffffff;
    --bs-btn-active-bg: var(--jw-brass-hover);
    --bs-btn-active-border-color: var(--jw-brass-hover);
    --bs-btn-disabled-color: var(--jw-muted);
    --bs-btn-disabled-border-color: var(--jw-border);
    --bs-btn-focus-shadow-rgb: var(--jw-brass-rgb);
}

[data-bs-theme="dark"] .btn-primary {
    --bs-btn-color: #ffffff;
    --bs-btn-bg: #2c4e78;
    --bs-btn-border-color: #2c4e78;
    --bs-btn-hover-color: #ffffff;
    --bs-btn-hover-bg: #365d8c;
    --bs-btn-hover-border-color: #365d8c;
    --bs-btn-active-color: #ffffff;
    --bs-btn-active-bg: #24405f;
    --bs-btn-active-border-color: #24405f;
}

[data-bs-theme="dark"] .btn-outline-primary {
    --bs-btn-color: #8fb0d4;
    --bs-btn-border-color: #2e4360;
    --bs-btn-hover-color: #ffffff;
    --bs-btn-hover-bg: #2c4e78;
    --bs-btn-hover-border-color: #2c4e78;
}

[data-bs-theme="dark"] .btn-outline-secondary {
    --bs-btn-color: #dde2e8;
    --bs-btn-border-color: #333c48;
    --bs-btn-hover-color: #14181e;
    --bs-btn-hover-bg: #c7a470;
    --bs-btn-hover-border-color: #c7a470;
    --bs-btn-active-color: #14181e;
    --bs-btn-active-bg: #b08f5e;
    --bs-btn-active-border-color: #b08f5e;
}

/* Formularfelder: Fokusrahmen statt Bootstrap-Hellblau */
.form-control:focus,
.form-select:focus {
    border-color: var(--jw-navy);
    box-shadow: 0 0 0 0.25rem rgba(var(--jw-navy-rgb), 0.2);
}

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

.form-check-input:focus {
    border-color: var(--jw-navy);
    box-shadow: 0 0 0 0.25rem rgba(var(--jw-navy-rgb), 0.2);
}

[data-bs-theme="dark"] .form-control:focus,
[data-bs-theme="dark"] .form-select:focus,
[data-bs-theme="dark"] .form-check-input:focus {
    border-color: #8fb0d4;
    box-shadow: 0 0 0 0.25rem rgba(143, 176, 212, 0.25);
}

[data-bs-theme="dark"] .form-check-input:checked {
    background-color: #2c4e78;
    border-color: #2c4e78;
}

/*
 * Akkordeon: Fokusschatten und die beiden eingebetteten Pfeil-Symbole
 * tragen in Bootstrap feste Farben. Die Symbole müssen als Datei-URL
 * komplett ersetzt werden, die Farbe steckt darin als %23rrggbb.
 */
.accordion {
    --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--jw-navy-rgb), 0.2);
    --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%235b6470' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
    --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%2316293f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
}

[data-bs-theme="dark"] .accordion {
    --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23a2adba' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
    --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%238fb0d4' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
}

/* Aufklappmenü der Navigation */
.dropdown-menu {
    --bs-dropdown-link-active-bg: var(--jw-navy);
    --bs-dropdown-link-hover-bg: var(--jw-navy-subtle);
    --bs-dropdown-border-color: var(--jw-border);
}

[data-bs-theme="dark"] .dropdown-menu {
    --bs-dropdown-link-active-bg: #2c4e78;
    --bs-dropdown-link-hover-bg: #232a34;
    --bs-dropdown-border-color: #333c48;
}

/* Kopfzeile: Marke und aktiver Punkt in Navy, Trennlinie in Messing */
.navbar {
    --bs-navbar-active-color: var(--jw-navy);
    --bs-navbar-hover-color: var(--jw-navy-hover);
    --bs-navbar-brand-color: var(--jw-navy-deep);
    --bs-navbar-brand-hover-color: var(--jw-navy);
    border-bottom-color: var(--jw-brass-border) !important;
}

[data-bs-theme="dark"] .navbar {
    --bs-navbar-active-color: #b8cde3;
    --bs-navbar-hover-color: #b8cde3;
    --bs-navbar-brand-color: #e8edf3;
    --bs-navbar-brand-hover-color: #ffffff;
    border-bottom-color: #4a3c25 !important;
}

/* Fußzeile mit derselben Messinglinie wie die Kopfzeile */
footer.border-top {
    border-top-color: var(--jw-brass-border) !important;
}

[data-bs-theme="dark"] footer.border-top {
    border-top-color: #4a3c25 !important;
}

/* Umschalter der Navigation auf kleinen Bildschirmen */
.navbar-toggler {
    --bs-navbar-toggler-border-color: var(--jw-brass-border);
    --bs-navbar-toggler-focus-width: 0.2rem;
}

/* Karten: warme Rahmen statt kühlem Grau */
.card {
    --bs-card-border-color: var(--jw-border);
}

[data-bs-theme="dark"] .card {
    --bs-card-border-color: #333c48;
}
