/* Gemeinsame Styles: Cookie-Banner, Rechtliche Links im Footer */

/* ---------- Cookie-Banner ---------- */
#nmd-cc { position: fixed; z-index: 9999; left: 16px; right: auto; bottom: 16px; width: min(640px, calc(100% - 32px)); margin: 0;
  background: #0c1830; color: #e6ecf8; border: 1px solid rgba(69,215,152,.55); border-top: 4px solid #f6b207; border-radius: 14px;
  box-shadow: 0 18px 48px rgba(0,0,0,.45); padding: 18px 20px; display: flex; gap: 20px; align-items: center; flex-wrap: wrap;
  font: 14px/1.5 'Inter', system-ui, -apple-system, sans-serif; }
#nmd-cc .nmd-cc-text { flex: 1 1 380px; min-width: 0; }
#nmd-cc strong { font-family: 'Manrope', system-ui, sans-serif; font-size: 16px; color: #fff; }
#nmd-cc p { margin: 4px 0 0; color: #b4c0d8; }
#nmd-cc a, #nmd-cc-modal a { color: #45d798; text-decoration: underline; }
.nmd-cc-actions { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.nmd-cc-btn { min-width: 150px; height: 44px; padding: 0 18px; border-radius: 9px; border: 2px solid #45d798; background: #45d798; color: #0c1830;
  font: 700 14.5px 'Inter', system-ui, sans-serif; cursor: pointer; transition: background .15s, color .15s; }
.nmd-cc-btn:hover { background: #5be3a9; border-color: #5be3a9; }
.nmd-cc-btn:focus-visible, .nmd-cc-link:focus-visible, .nmd-cc-x:focus-visible { outline: 3px solid #f6b207; outline-offset: 2px; }
/* "Nur notwendige" ist gleich groß und gleich auffällig wie "Alle akzeptieren" */
#nmd-cc .nmd-cc-btn[data-act="reject"] { background: transparent; color: #fff; border-color: #fff; }
#nmd-cc .nmd-cc-btn[data-act="reject"]:hover { background: rgba(255,255,255,.12); }
.nmd-cc-link { background: none; border: 0; color: #e6ecf8; font: 600 14px 'Inter', system-ui, sans-serif; text-decoration: underline; cursor: pointer; padding: 8px 4px; }

#nmd-cc-modal { position: fixed; inset: 0; z-index: 10000; background: rgba(8,14,30,.72); display: flex; align-items: center; justify-content: center; padding: 16px;
  font: 14px/1.5 'Inter', system-ui, -apple-system, sans-serif; }
.nmd-cc-card { position: relative; background: #fff; color: #0c1830; border-radius: 16px; max-width: 560px; width: 100%; max-height: 92vh; overflow: auto; padding: 26px; box-shadow: 0 24px 60px rgba(0,0,0,.4); }
.nmd-cc-card h2 { margin: 0 0 6px; font: 800 22px 'Manrope', system-ui, sans-serif; }
.nmd-cc-intro { margin: 0 0 16px; color: #58657e; }
.nmd-cc-card a { color: #0f8a5c; }
.nmd-cc-row { display: flex; gap: 16px; align-items: flex-start; justify-content: space-between; padding: 14px 0; border-top: 1px solid #e2e7ef; }
.nmd-cc-row p { margin: 4px 0 0; color: #58657e; font-size: 13.5px; }
.nmd-cc-on { flex: none; font-size: 12.5px; font-weight: 700; color: #0f8a5c; background: #e4f8ef; border-radius: 6px; padding: 3px 9px; white-space: nowrap; }
.nmd-cc-card .nmd-cc-actions { margin-top: 18px; }
.nmd-cc-card .nmd-cc-btn { flex: 1 1 200px; }
.nmd-cc-card .nmd-cc-btn[data-act="save"] { background: #fff; color: #0c1830; border-color: #0c1830; }
.nmd-cc-card .nmd-cc-btn[data-act="save"]:hover { background: #eceff6; }
.nmd-cc-x { position: absolute; top: 10px; right: 12px; width: 36px; height: 36px; border: 0; border-radius: 8px; background: transparent; font-size: 26px; line-height: 1; color: #58657e; cursor: pointer; }
.nmd-cc-x:hover { background: #eceff6; color: #0c1830; }
.nmd-cc-switch { position: relative; flex: none; display: inline-block; width: 46px; height: 26px; cursor: pointer; }
.nmd-cc-switch input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.nmd-cc-track { position: absolute; inset: 0; background: #9aa6bb; border-radius: 999px; transition: background .15s; pointer-events: none; }
.nmd-cc-track::after { content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; background: #fff; border-radius: 50%; transition: transform .15s; }
.nmd-cc-switch input:checked + .nmd-cc-track { background: #0f8a5c; }
.nmd-cc-switch input:checked + .nmd-cc-track::after { transform: translateX(20px); }
.nmd-cc-switch input:focus-visible + .nmd-cc-track { outline: 3px solid #f6b207; outline-offset: 2px; }
@media (max-width: 600px) {
  #nmd-cc { left: 10px; right: auto; bottom: 10px; width: calc(100% - 20px); padding: 16px; }
  #nmd-cc .nmd-cc-actions { width: 100%; }
  #nmd-cc .nmd-cc-btn { flex: 1 1 100%; }
}

/* ---------- Footer mit rechtlichen Links ---------- */
.nmd-footer { background: #0c1830; color: #8d9bb8; font: 13px/1.55 'Inter', system-ui, sans-serif; padding: 28px 0; margin-top: 8px; }
.nmd-footer .nmd-wrap { max-width: 1440px; margin: 0 auto; padding: 0 28px; }
.nmd-footer b { color: #fff; font-family: 'Manrope', system-ui, sans-serif; }
.legal-links { display: flex; flex-wrap: wrap; gap: 6px 22px; margin-top: 14px; font-size: 13.5px; font-weight: 600; }
.legal-links a { color: #d6deef; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.25); }
.legal-links a:hover { color: #45d798; border-color: #45d798; }
.legal-note { margin-top: 12px; font-size: 12.5px; color: #8d9bb8; max-width: 980px; }
@media (max-width: 560px) { .nmd-footer .nmd-wrap { padding: 0 16px; } }