/* ==========================================================================
   FORGE · BASE
   Typografie, Buttons, Formulare und das dunkle Komponenten-Layer ueber der
   (bereits auf Tokens umgefaerbten) NOVA-Basis. Tokens: forge_crit.css.
   ========================================================================== */

:root {
    --primary: var(--fg-lime);
    --secondary: var(--fg-surface-4);
    --light: var(--fg-surface-2);
    --dark: var(--fg-bg);
    --font-family-sans-serif: var(--fg-font);
}

/* ---------- Grundlagen ---------- */
html { scroll-behavior: auto; }
body { font-size: 15px; letter-spacing: -0.003em; overflow-x: clip; }
::selection { background: var(--fg-lime); color: var(--fg-lime-ink); }
img { max-width: 100%; }
hr { border-top-color: var(--fg-line); }
a { color: var(--fg-text); text-decoration: none; transition: color .25s var(--fg-ease); }
a:hover, a:focus { color: var(--fg-lime); text-decoration: none; }
p { color: var(--fg-text-2); }
small, .small { color: var(--fg-muted); }
.text-muted, .text-muted-util { color: var(--fg-muted) !important; }
.text-primary { color: var(--fg-lime) !important; }
.text-success { color: var(--fg-success) !important; }
.text-danger { color: var(--fg-danger) !important; }
.text-warning { color: var(--fg-warning) !important; }
.bg-white, .bg-light, .bg-info { background-color: var(--fg-surface) !important; }
.bg-dark { background-color: var(--fg-bg) !important; }
.bg-primary { background-color: var(--fg-lime) !important; color: var(--fg-lime-ink) !important; }
.border, .border-top, .border-bottom, .border-left, .border-right { border-color: var(--fg-line) !important; }

:focus-visible { outline: 2px solid var(--fg-lime); outline-offset: 3px; border-radius: 4px; }
button:focus:not(:focus-visible) { outline: none; }

/* Scrollbar */
html { scrollbar-color: var(--fg-surface-4) var(--fg-bg); scrollbar-width: thin; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--fg-bg); }
::-webkit-scrollbar-thumb { background: var(--fg-surface-4); border-radius: 10px; border: 2px solid var(--fg-bg); }
::-webkit-scrollbar-thumb:hover { background: #2f3838; }

/* ---------- Typografie ---------- */
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
    font-family: var(--fg-display);
    color: var(--fg-text);
    font-weight: 700;
    letter-spacing: -0.015em;
    line-height: 1.08;
}
h1, .h1 { font-size: clamp(2rem, 1.2rem + 2.6vw, 3.5rem); }
h2, .h2 { font-size: clamp(1.6rem, 1.1rem + 1.6vw, 2.6rem); }
h3, .h3 { font-size: clamp(1.25rem, 1rem + .8vw, 1.6rem); }
h4, .h4 { font-size: 1.2rem; }
h5, .h5 { font-size: 1.05rem; }
h6, .h6 { font-size: .95rem; }
.subheadline, .h-underline { font-family: var(--fg-display); color: var(--fg-text); border-color: var(--fg-line) !important; }
.h-underline::after, .subheadline::after { background: var(--fg-lime) !important; }

.fg-kicker {
    display: inline-flex; align-items: center; gap: .6em;
    font-family: var(--fg-display);
    font-size: .75rem; font-weight: 600;
    letter-spacing: .18em; text-transform: uppercase;
    color: var(--fg-lime);
}
.fg-kicker::before {
    content: ""; width: 18px; height: 1px;
    background: currentColor; opacity: .7;
}
.fg-kicker.no-line::before { display: none; }
.fg-title {
    font-family: var(--fg-display); font-weight: 700;
    font-size: clamp(2rem, 1.1rem + 2.9vw, 3.75rem);
    line-height: 1.02; letter-spacing: -0.025em;
    color: var(--fg-text); margin: 0;
}
.fg-title-md { font-size: clamp(1.7rem, 1.1rem + 1.8vw, 2.75rem); }
.fg-title .is-accent, .fg-accent { color: var(--fg-lime); }
.fg-lead { font-size: clamp(1rem, .95rem + .3vw, 1.18rem); color: var(--fg-text-2); line-height: 1.6; max-width: 60ch; margin: 0; }
.fg-muted { color: var(--fg-muted); }

/* Section rhythm */
.fg-section { padding-top: var(--fg-section); padding-bottom: 0; position: relative; }
.fg-section:last-child { padding-bottom: var(--fg-section); }
.fg-section-head {
    display: flex; align-items: flex-end; justify-content: space-between; gap: 24px;
    margin-bottom: clamp(24px, 3vw, 40px);
}
.fg-section-head .fg-lead { margin-top: 10px; }

.fg-link-arrow {
    display: inline-flex; align-items: center; gap: 8px;
    color: var(--fg-lime); font-weight: 600; font-size: .95rem; white-space: nowrap;
}
.fg-link-arrow .fg-icon { width: 18px; height: 18px; transition: transform .4s var(--fg-ease); }
.fg-link-arrow:hover { color: var(--fg-lime-hi); }
.fg-link-arrow:hover .fg-icon { transform: translateX(4px); }

/* ---------- Buttons ---------- */
.fg-btn, .btn {
    --b-bg: transparent; --b-fg: var(--fg-text); --b-bd: var(--fg-line-strong);
    position: relative; isolation: isolate; overflow: hidden;
    display: inline-flex; align-items: center; justify-content: center; gap: 10px;
    min-height: 48px; padding: 0 22px;
    font-family: var(--fg-font); font-size: .95rem; font-weight: 600; letter-spacing: -0.005em;
    line-height: 1.1; white-space: nowrap;
    color: var(--b-fg); background: var(--b-bg);
    border: 1px solid var(--b-bd); border-radius: var(--fg-radius-sm);
    box-shadow: none; cursor: pointer; text-decoration: none !important;
    transition: background-color .35s var(--fg-ease), border-color .35s var(--fg-ease), color .35s var(--fg-ease), box-shadow .35s var(--fg-ease), transform .35s var(--fg-ease);
}
.btn { min-height: 44px; padding: 0 18px; font-size: .9rem; }
.btn-sm, .fg-btn-sm { min-height: 38px; padding: 0 14px; font-size: .85rem; }
.btn-lg, .fg-btn-lg { min-height: 56px; padding: 0 28px; font-size: 1rem; }
.btn-block, .fg-btn-block { display: flex; width: 100%; }
.fg-btn .fg-icon, .btn .fg-icon { width: 18px; height: 18px; transition: transform .45s var(--fg-ease); }
.fg-btn:hover .fg-icon-arrow-right { transform: translateX(4px); }
.fg-btn:active, .btn:active { transform: translateY(1px) scale(.99); }

/* Licht-Sweep auf Primary */
.fg-btn-primary::after, .btn-primary::after {
    content: ""; position: absolute; z-index: -1; inset: 0;
    background: linear-gradient(110deg, transparent 20%, rgba(255,255,255,.55) 50%, transparent 80%);
    transform: translateX(-120%); transition: transform .9s var(--fg-ease);
}
.fg-btn-primary:hover::after, .btn-primary:hover::after { transform: translateX(120%); }

.fg-btn-primary, .btn-primary, .btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active {
    --b-bg: var(--fg-lime); --b-fg: var(--fg-lime-ink); --b-bd: var(--fg-lime);
    background: var(--fg-lime); color: var(--fg-lime-ink); border-color: var(--fg-lime);
}
.fg-btn-primary:hover, .btn-primary:hover, .fg-btn-primary:focus-visible, .btn-primary:focus {
    background: var(--fg-lime-hi); border-color: var(--fg-lime-hi); color: var(--fg-lime-ink);
    box-shadow: 0 0 0 1px rgba(198,244,50,.25), 0 10px 30px -10px var(--fg-lime-glow);
}
.fg-btn-outline, .btn-outline-primary {
    --b-bd: rgba(198,244,50,.55); --b-fg: var(--fg-lime);
    color: var(--fg-lime); border-color: rgba(198,244,50,.55); background: transparent;
}
.fg-btn-outline:hover, .btn-outline-primary:hover, .btn-outline-primary:not(:disabled):not(.disabled):active {
    background: var(--fg-lime-a10); border-color: var(--fg-lime); color: var(--fg-lime-hi);
}
.fg-btn-ghost, .btn-secondary, .btn-outline-secondary, .btn-light, .btn-default, .btn-outline-dark,
.btn-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled):active {
    --b-bd: var(--fg-line-strong); --b-fg: var(--fg-text);
    background: rgba(255,255,255,.02); color: var(--fg-text); border-color: var(--fg-line-strong);
}
.fg-btn-ghost:hover, .btn-secondary:hover, .btn-outline-secondary:hover, .btn-light:hover, .btn-default:hover, .btn-outline-dark:hover,
.btn-secondary:focus, .btn-outline-secondary:focus {
    background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.32); color: var(--fg-text);
}
.btn-link { --b-bd: transparent; color: var(--fg-lime); border-color: transparent; padding-left: 0; padding-right: 0; min-height: auto; }
.btn-link:hover { color: var(--fg-lime-hi); background: transparent; }
.btn-danger { background: var(--fg-danger); border-color: var(--fg-danger); color: #fff; }
.btn.disabled, .btn:disabled, .fg-btn[disabled] { opacity: .45; cursor: not-allowed; box-shadow: none; }
.btn-icon, .btn-icon-secondary { min-height: 40px; width: 40px; padding: 0; }
.btn:focus, .btn.focus { box-shadow: 0 0 0 3px var(--fg-lime-a20); }

/* NOVA: animierte Button-Klassen neutralisieren */
.btn-animated .btn-primary::before, .btn-primary .btn-spinner { display: none; }

/* ---------- Formulare ---------- */
.form-control, .custom-select, select.form-control, textarea.form-control,
.bootstrap-select > .dropdown-toggle, .input-group-text {
    background-color: var(--fg-surface-2) !important;
    color: var(--fg-text) !important;
    border: 1px solid var(--fg-line-strong) !important;
    border-radius: var(--fg-radius-sm);
    min-height: 46px;
    font-size: .92rem;
    box-shadow: none !important;
    transition: border-color .25s var(--fg-ease), box-shadow .25s var(--fg-ease), background-color .25s var(--fg-ease);
}
.form-control-sm { min-height: 38px; }
textarea.form-control { min-height: 120px; }
.form-control::placeholder { color: var(--fg-subtle); opacity: 1; }
.form-control:hover, .custom-select:hover { border-color: rgba(255,255,255,.24) !important; }
.form-control:focus, .custom-select:focus, .bootstrap-select > .dropdown-toggle:focus {
    border-color: var(--fg-lime) !important;
    box-shadow: 0 0 0 3px var(--fg-lime-a20) !important;
    background-color: var(--fg-surface-3) !important;
    outline: none;
}
.form-control:disabled, .form-control[readonly] { background-color: var(--fg-surface) !important; color: var(--fg-muted) !important; }
.custom-select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23949e9b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important; background-position: right 12px center !important; background-size: 16px !important;
    padding-right: 38px;
}
label, .col-form-label, legend { color: var(--fg-text-2); font-size: .85rem; font-weight: 500; }
legend { font-family: var(--fg-display); font-size: 1.15rem; color: var(--fg-text); font-weight: 600; }
.label-slide .form-group:not(.exclude-from-label-slide):not(.checkbox) label {
    background: transparent !important; color: var(--fg-muted);
}
.label-slide .form-group:not(.exclude-from-label-slide):not(.checkbox) label::after { background: var(--fg-surface-2) !important; }
.form-text, .form-text-util { color: var(--fg-muted) !important; }
.invalid-feedback, .form-error-msg, .has-error .form-error-msg { color: var(--fg-danger) !important; }
.has-error .form-control, .form-control.is-invalid { border-color: var(--fg-danger) !important; }
.form-control.is-valid { border-color: var(--fg-success) !important; }

/* Checkbox / Radio: 20px, abgerundet, Lime mit Haken bzw. Punkt, Hover/Fokus-Ring.
   Groesse/Position nur ueber :where() (Spezifitaet wie Bootstrap) - Sonderfaelle (Konfigurator-Kacheln, Versand-Karten,
   Schalter) behalten ihre eigenen Regeln. */
.custom-control:where(.custom-checkbox, .custom-radio) { padding-left: 32px; min-height: 22px; }
.custom-control-label { color: var(--fg-text-2); cursor: pointer; line-height: 1.45; }
:where(.custom-checkbox, .custom-radio) > .custom-control-label::before,
:where(.custom-checkbox, .custom-radio) > .custom-control-label::after { top: 0; left: -32px; width: 20px; height: 20px; }
.custom-control-label::before {
    background-color: var(--fg-surface-2) !important;
    border: 1.5px solid rgba(255,255,255,.26) !important;
    box-shadow: none !important;
    transition: background-color .25s var(--fg-ease), border-color .25s var(--fg-ease), box-shadow .25s var(--fg-ease), transform .25s var(--fg-ease);
}
.custom-checkbox .custom-control-label::before { border-radius: 6px; }
.custom-control-input:not(:disabled) ~ .custom-control-label:hover::before { border-color: rgba(255,255,255,.5) !important; }
.custom-control-input:not(:disabled):active ~ .custom-control-label::before { transform: scale(.92); }
.custom-control-input:checked ~ .custom-control-label::before {
    background-color: var(--fg-lime) !important; border-color: var(--fg-lime) !important;
    box-shadow: 0 0 0 4px rgba(198,244,50,.12), 0 0 16px -4px var(--fg-lime-glow) !important;
}
.custom-control-input:checked ~ .custom-control-label { color: var(--fg-text); }
.custom-checkbox .custom-control-label::after { background-position: center; background-size: 13px 13px !important; }
.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b1004' stroke-width='3.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") !important;
    animation: fg-check-pop .3s var(--fg-ease);
}
.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before { background-color: var(--fg-lime) !important; border-color: var(--fg-lime) !important; }
.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b1004' stroke-width='3.6' stroke-linecap='round'%3E%3Cpath d='M6 12h12'/%3E%3C/svg%3E") !important;
}
.custom-radio .custom-control-label::after { background-position: center; background-size: 20px 20px !important; }
.custom-radio .custom-control-input:checked ~ .custom-control-label::after {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-10 -10 20 20'%3E%3Ccircle r='3.6' fill='%230b1004'/%3E%3C/svg%3E") !important;
    animation: fg-check-pop .3s var(--fg-ease);
}
.custom-control-input:focus-visible ~ .custom-control-label::before { box-shadow: 0 0 0 3px rgba(198,244,50,.45) !important; }
.custom-control-input:focus:not(:focus-visible) ~ .custom-control-label::before { box-shadow: none !important; }
.custom-control-input:checked:focus:not(:focus-visible) ~ .custom-control-label::before { box-shadow: 0 0 0 4px rgba(198,244,50,.12), 0 0 16px -4px var(--fg-lime-glow) !important; }
.custom-control-input:disabled ~ .custom-control-label { opacity: .5; cursor: not-allowed; }
.custom-switch .custom-control-label::after { background-color: var(--fg-muted) !important; }
.custom-switch .custom-control-input:checked ~ .custom-control-label::after { background-color: var(--fg-lime-ink) !important; }
@keyframes fg-check-pop { 0% { transform: scale(.4); opacity: 0; } 70% { transform: scale(1.12); opacity: 1; } 100% { transform: scale(1); } }

/* Input groups */
.input-group > .form-control:not(:last-child) { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.input-group > .input-group-append > .btn { border-top-left-radius: 0; border-bottom-left-radius: 0; }
.input-group-text { color: var(--fg-muted) !important; }

/* Mengen-Zaehler (NOVA form-counter) */
.form-counter {
    display: inline-flex; align-items: stretch;
    background: var(--fg-surface-2); border: 1px solid var(--fg-line-strong);
    border-radius: var(--fg-radius-sm); overflow: hidden; max-height: none !important; height: 46px;
}
.form-counter .form-control, .form-counter input {
    border: 0 !important; background: transparent !important; text-align: center;
    min-height: 0 !important; height: 100% !important; width: 52px; padding: 0 !important; font-weight: 600;
}
.form-counter .btn, .form-counter .input-group-prepend .btn, .form-counter .input-group-append .btn {
    border: 0 !important; background: transparent !important; color: var(--fg-text) !important;
    min-height: 0 !important; height: 100% !important; max-height: none !important; width: 42px; border-radius: 0 !important;
}
.form-counter .btn:hover { background: rgba(255,255,255,.06) !important; color: var(--fg-lime) !important; }
.form-counter .input-group-prepend, .form-counter .input-group-append { margin: 0; }

/* ---------- Dropdowns / Popover / Tooltip ---------- */
.dropdown-menu {
    background: rgba(17,21,21,.96) !important;
    -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px);
    border: 1px solid var(--fg-line-strong) !important;
    border-radius: var(--fg-radius) !important;
    box-shadow: 0 30px 60px -20px rgba(0,0,0,.85) !important;
    color: var(--fg-text);
}
.dropdown-item, .dropdown-menu a:not(.btn) { color: var(--fg-text-2); }
.dropdown-item:hover, .dropdown-item:focus, .dropdown-item.active, .dropdown-item:active { background: rgba(255,255,255,.05) !important; color: var(--fg-lime) !important; }
.dropdown-divider { border-top-color: var(--fg-line); }
.dropdown-header { color: var(--fg-muted); }
.bootstrap-select .dropdown-menu li a span.text { color: var(--fg-text-2); }
.bootstrap-select .dropdown-menu li.selected a, .bootstrap-select .dropdown-menu li.active a { background: var(--fg-lime-a10) !important; color: var(--fg-lime) !important; }
.popover { background: var(--fg-surface-3); border-color: var(--fg-line-strong); }
.popover-body, .popover-header { color: var(--fg-text-2); background: transparent; border-color: var(--fg-line); }
.tooltip-inner { background: var(--fg-surface-4); color: var(--fg-text); border: 1px solid var(--fg-line-strong); border-radius: var(--fg-radius-xs); }

/* ---------- Modals ---------- */
.modal-backdrop { background: #020303; }
.modal-backdrop.show { opacity: .72; }
.modal-content {
    background: var(--fg-surface) !important; color: var(--fg-text);
    border: 1px solid var(--fg-line-strong) !important; border-radius: var(--fg-radius-lg) !important;
    box-shadow: 0 40px 80px -30px rgba(0,0,0,.9);
}
.modal-header, .modal-footer { border-color: var(--fg-line) !important; }
.modal-title { font-family: var(--fg-display); }
.close, .modal .close { color: var(--fg-text) !important; opacity: .7; text-shadow: none; }
.close:hover { opacity: 1; color: var(--fg-lime) !important; }

/* ---------- Cards / Lists / Tables ---------- */
.card {
    background: var(--fg-surface) !important; color: var(--fg-text);
    border: 1px solid var(--fg-line) !important; border-radius: var(--fg-radius) !important;
}
.card-header, .card-footer { background: transparent !important; border-color: var(--fg-line) !important; color: var(--fg-text); }
.card-title { font-family: var(--fg-display); }
.list-group-item { background: var(--fg-surface) !important; color: var(--fg-text-2); border-color: var(--fg-line) !important; }
.list-group-item.active { background: var(--fg-lime-a10) !important; color: var(--fg-lime); border-color: rgba(198,244,50,.3) !important; }
.list-group-item-action:hover { background: var(--fg-surface-2) !important; color: var(--fg-text); }
.table { color: var(--fg-text-2); }
.table th, .table td, .table thead th { border-color: var(--fg-line) !important; }
.table thead th { color: var(--fg-muted); font-weight: 600; font-size: .8rem; letter-spacing: .04em; text-transform: uppercase; }
.table-striped tbody tr:nth-of-type(odd) { background: rgba(255,255,255,.02); }
.table-hover tbody tr:hover { background: rgba(255,255,255,.035); color: var(--fg-text); }
.well, .jumbotron { background: var(--fg-surface) !important; border-color: var(--fg-line) !important; }

/* ---------- Tabs / Nav / Pagination ---------- */
.nav-tabs { border-bottom: 1px solid var(--fg-line) !important; gap: 4px; }
.nav-tabs .nav-link {
    color: var(--fg-muted) !important; background: transparent !important;
    border: 0 !important; border-bottom: 2px solid transparent !important;
    font-weight: 500; padding: 14px 4px; margin-right: 24px;
    transition: color .3s var(--fg-ease), border-color .3s var(--fg-ease);
}
.nav-tabs .nav-link:hover { color: var(--fg-text) !important; }
.nav-tabs .nav-link.active, .nav-tabs .nav-item.show .nav-link {
    color: var(--fg-lime) !important; border-bottom-color: var(--fg-lime) !important;
}
.nav-pills .nav-link.active { background: var(--fg-lime); color: var(--fg-lime-ink); }
.pagination { gap: 6px; }
/* NOVA legt die Seitenzahlen in ein Dropdown, das ab lg als Reihe erscheint – dort fehlte der Abstand */
.pagination .dropdown-menu { gap: 6px; }
.pagination .dropdown-item.page-item { margin: 0; }
.page-link, .pagination .page-item .page-link {
    background: var(--fg-surface) !important; color: var(--fg-text-2) !important;
    border: 1px solid var(--fg-line-strong) !important; border-radius: var(--fg-radius-sm) !important;
    min-width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center;
}
.page-link:hover { border-color: rgba(198,244,50,.5) !important; color: var(--fg-lime) !important; }
.page-item.active .page-link, .pagination .page-item.active .page-link {
    background: var(--fg-lime) !important; color: var(--fg-lime-ink) !important; border-color: var(--fg-lime) !important; font-weight: 700;
}
.page-item.disabled .page-link { opacity: .4; }

/* ---------- Alerts / Badges ---------- */
.alert {
    border-radius: var(--fg-radius) !important; border: 1px solid var(--fg-line-strong) !important;
    background: var(--fg-surface-2) !important; color: var(--fg-text-2) !important;
}
.alert-success { border-color: rgba(143,224,92,.35) !important; background: var(--fg-success-bg) !important; color: #c9f3b1 !important; }
.alert-danger { border-color: rgba(255,93,97,.4) !important; background: var(--fg-danger-bg) !important; color: #ffc2c4 !important; }
.alert-warning { border-color: rgba(244,184,74,.4) !important; background: var(--fg-warning-bg) !important; color: #ffe0a8 !important; }
.alert-info { border-color: var(--fg-line-strong) !important; }
.alert a { color: var(--fg-lime); }
.badge { border-radius: 6px; font-weight: 600; }
.badge-primary { background: var(--fg-lime); color: var(--fg-lime-ink); }
.badge-secondary, .badge-light { background: var(--fg-surface-4); color: var(--fg-text); }
.badge-success { background: var(--fg-success-bg); color: var(--fg-success); }
.badge-danger { background: var(--fg-danger); color: #fff; }

/* Ribbons (NOVA) */
.ribbon {
    font-family: var(--fg-display); font-weight: 700; font-size: .75rem; letter-spacing: .02em;
    border-radius: 6px !important; padding: 4px 9px !important; text-transform: none;
    background: var(--fg-lime) !important; color: var(--fg-lime-ink) !important; box-shadow: 0 6px 20px -8px var(--fg-lime-glow);
}
.ribbon::before, .ribbon::after { display: none !important; }
.ribbon-2, .ribbon-sale, .ribbon-special-price { background: var(--fg-danger) !important; color: #fff !important; box-shadow: 0 6px 20px -8px rgba(255,93,97,.5); }

/* ---------- Collapse / Accordion ---------- */
[data-toggle="collapse"].dropdown-toggle::after { border-top-color: currentColor; }
.collapse-icon, .fa-chevron-down { color: var(--fg-muted); }

/* ---------- Typeahead (Suche) ---------- */
.tt-menu, .tt-dropdown-menu {
    background: rgba(17,21,21,.98) !important; border: 1px solid var(--fg-line-strong) !important;
    border-radius: var(--fg-radius) !important; box-shadow: 0 30px 60px -20px rgba(0,0,0,.85) !important;
    padding: 6px !important; margin-top: 8px;
}
.tt-menu .tt-suggestion, .tt-dropdown-menu .tt-suggestion { color: var(--fg-text-2) !important; border-radius: var(--fg-radius-xs); padding: 9px 12px !important; }
.tt-menu .tt-suggestion.tt-cursor, .tt-menu .tt-suggestion:hover { background: rgba(255,255,255,.05) !important; color: var(--fg-lime) !important; }
.tt-menu .tt-suggestion a, .tt-menu .tt-suggestion p { color: inherit !important; }

/* ---------- Breadcrumb ---------- */
.breadcrumb-container { padding-top: 20px; padding-bottom: 4px; }
.breadcrumb-wrapper, .breadcrumb { background: transparent !important; padding: 0 !important; margin: 0 !important; border: 0 !important; }
.breadcrumb { font-size: .85rem; }
.breadcrumb-item, .breadcrumb-item a, .breadcrumb a { color: var(--fg-muted) !important; }
.breadcrumb-item a:hover { color: var(--fg-text) !important; }
.breadcrumb-item.active, .breadcrumb-item:last-child, .breadcrumb-item:last-child a, .breadcrumb-item:last-child span { color: var(--fg-lime) !important; }
.breadcrumb-item + .breadcrumb-item::before { content: "/" !important; color: var(--fg-subtle) !important; padding: 0 10px !important; }
.breadcrumb-arrow, .breadcrumb-backtolist { display: none !important; }

/* ---------- Skip-Links / Consent / Misc ---------- */
.btn-skip-to { background: var(--fg-lime) !important; color: var(--fg-lime-ink) !important; }
#consent-manager .consent-banner, #consent-manager .consent-modal-content, #consent-manager .consent-banner-body {
    background: var(--fg-surface) !important; color: var(--fg-text-2) !important;
    border: 1px solid var(--fg-line-strong) !important; border-radius: var(--fg-radius-lg) !important;
}
#consent-manager .consent-btn-primary, .consent-btn-primary { background: var(--fg-lime) !important; border-color: var(--fg-lime) !important; color: var(--fg-lime-ink) !important; }
#consent-manager .consent-btn-outline-primary, .consent-btn-outline-primary, .consent-btn-secondary { background: transparent !important; color: var(--fg-text) !important; border-color: var(--fg-line-strong) !important; }
#consent-manager a, #consent-manager .consent-link { color: var(--fg-lime) !important; }
#consent-settings-btn { background: var(--fg-surface-3) !important; border: 1px solid var(--fg-line-strong) !important; color: var(--fg-text) !important; }
.fa-sup, .fg-badge {
    background: var(--fg-lime) !important; color: var(--fg-lime-ink) !important;
    font-family: var(--fg-font); font-weight: 700; font-style: normal;
}
.price_wrapper .price, .price { color: var(--fg-text); font-family: var(--fg-display); font-weight: 700; }
.price .text-nowrap, .price-note, .vat_info, .price-note a { color: var(--fg-muted) !important; }
.price.special-price, .special-price .price { color: var(--fg-text); }
.instead-of, .old-price, del { color: var(--fg-subtle) !important; }
.slick-arrow, .slick-prev, .slick-next {
    background: rgba(17,21,21,.85) !important; color: var(--fg-text) !important;
    border: 1px solid var(--fg-line-strong) !important; border-radius: 50% !important;
}
.slick-arrow:hover { border-color: var(--fg-lime) !important; color: var(--fg-lime) !important; }
.slick-dots li button::before { color: var(--fg-muted) !important; }
.slick-dots li.slick-active button::before { color: var(--fg-lime) !important; }

/* Ladeindikatoren */
.spinner-border, .spinner-grow { color: var(--fg-lime); }
#ajax-loader, .loader { background: transparent; }

/* Leer-Zustaende / Wells */
.empty, .no-results { color: var(--fg-muted); }

/* NOVA versteckte Default-Submit-Buttons duerfen durch .btn-Styles nicht sichtbar werden */
.btn.btn-hidden, .btn.btn-hidden-default, .btn-hidden {
    position: absolute !important; width: 1px !important; height: 1px !important; min-height: 0 !important;
    padding: 0 !important; margin: -1px !important; border: 0 !important; overflow: hidden !important;
    clip: rect(0 0 0 0) !important; opacity: 0 !important; pointer-events: none;
}
