/* VitoScore Impressum – Legal & Compliance Enterprise Surface */
.imp-page {
    position: relative;
    flex: 1 1 auto;
    width: 100%;
    padding: 3.5rem 1rem 5.5rem;
    /* Kein overflow:hidden: Das würde position:sticky für die Side-nav blockieren. */
    overflow: visible;
    background:
        radial-gradient(circle at 10% 18%, rgba(59,130,246,.055), transparent 28rem),
        radial-gradient(circle at 94% 67%, rgba(99,102,241,.05), transparent 28rem);
}
.dark .imp-page {
    background:
        radial-gradient(circle at 8% 18%, rgba(37,99,235,.12), transparent 30rem),
        radial-gradient(circle at 94% 68%, rgba(79,70,229,.09), transparent 29rem),
        #020617;
}
.imp-page::before {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: .35;
    background-image: linear-gradient(rgba(148,163,184,.055) 1px, transparent 1px), linear-gradient(90deg, rgba(148,163,184,.055) 1px, transparent 1px);
    background-size: 56px 56px;
    mask-image: linear-gradient(to bottom, transparent, black 10%, black 82%, transparent);
    -webkit-mask-image: linear-gradient(to bottom, transparent, black 10%, black 82%, transparent);
}

/* ── Compliance hero ───────────────────────────────────────────────────── */
.imp-hero {
    position: relative;
    overflow: hidden;
    color: #e2e8f0;
    background: linear-gradient(135deg, #061226 0%, #0b1932 52%, #171b43 100%);
}
.imp-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    opacity: .38;
    background-image: radial-gradient(rgba(147,197,253,.65) .75px, transparent .75px);
    background-size: 25px 25px;
    mask-image: radial-gradient(ellipse 75% 115% at 75% 35%, black 5%, transparent 76%);
    -webkit-mask-image: radial-gradient(ellipse 75% 115% at 75% 35%, black 5%, transparent 76%);
}
.imp-hero::after {
    content: '';
    position: absolute;
    right: -130px;
    top: -250px;
    width: 620px;
    height: 620px;
    border: 1px solid rgba(129,140,248,.16);
    border-radius: 50%;
    box-shadow: 0 0 0 32px rgba(129,140,248,.035), 0 0 0 70px rgba(129,140,248,.025);
}
.imp-hero-inner { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1fr) minmax(330px, .75fr); align-items: center; width: min(1120px, 100%); min-height: 315px; margin: auto; padding: 2.25rem 1rem 1.9rem; }
.imp-hero-copy { position: relative; z-index: 2; }
.imp-breadcrumb { display: flex; align-items: center; gap: .45rem; margin-bottom: 1.15rem; color: #64748b; font-size: .68rem; font-weight: 700; }
.imp-breadcrumb a { color: #94a3b8; text-decoration: none; transition: color .2s ease; }
.imp-breadcrumb a:hover { color: #bfdbfe; }
.imp-breadcrumb svg { color: #475569; }
.imp-breadcrumb span { color: #cbd5e1; }
.imp-kicker { display: inline-flex; align-items: center; gap: .65rem; color: #93c5fd; font-size: .68rem; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; }
.imp-kicker-mark { position: relative; width: 8px; height: 8px; border-radius: 50%; background: #60a5fa; box-shadow: 0 0 0 5px rgba(96,165,250,.12), 0 0 18px rgba(96,165,250,.85); }
.imp-kicker-mark::after { content: ''; position: absolute; inset: -5px; border: 1px solid rgba(147,197,253,.45); border-radius: 50%; animation: imp-ping 2.4s ease-out infinite; }
@keyframes imp-ping { 0% { opacity: .75; transform: scale(.65); } 75%, 100% { opacity: 0; transform: scale(1.9); } }
.imp-hero h1 { max-width: 32rem; margin: 1.15rem 0 0; color: #f8fafc; font-size: clamp(1.95rem, 3.2vw, 3.1rem); line-height: 1.04; letter-spacing: -.06em; font-weight: 800; }
.imp-hero-lead { max-width: 34rem; margin: 1.25rem 0 0; color: #94a3b8; font-size: .97rem; line-height: 1.75; }
.imp-hero-meta { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.65rem; }
.imp-meta-pill { display: inline-flex; align-items: center; gap: .45rem; padding: .52rem .72rem; border: 1px solid rgba(148,163,184,.16); border-radius: 10px; color: #cbd5e1; background: rgba(255,255,255,.045); font-size: .67rem; font-weight: 750; }
.imp-meta-pill svg { color: #60a5fa; }
.imp-hero-art { display: block; width: min(100%, 440px); height: auto; margin: 0 auto; overflow: visible; }
.imp-art-orbit { transform-origin: 280px 201px; animation: imp-orbit 24s linear infinite; }
.imp-art-orbit-reverse { transform-origin: 280px 201px; animation: imp-orbit-reverse 31s linear infinite; }
@keyframes imp-orbit { to { transform: rotate(360deg); } }
@keyframes imp-orbit-reverse { to { transform: rotate(-360deg); } }
.imp-art-pulse { transform-origin: 280px 201px; animation: imp-core-pulse 3.5s ease-in-out infinite; }
@keyframes imp-core-pulse { 0%, 100% { opacity: .75; transform: scale(.97); } 50% { opacity: 1; transform: scale(1.035); } }
.imp-art-glow { animation: imp-glow 4s ease-in-out infinite; transform-origin: center; }
@keyframes imp-glow { 0%, 100% { opacity: .35; } 50% { opacity: .72; } }
.imp-art-float-a { animation: imp-float-a 5.2s ease-in-out infinite; }
.imp-art-float-b { animation: imp-float-b 6s ease-in-out .7s infinite; }
@keyframes imp-float-a { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
@keyframes imp-float-b { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(7px); } }

/* ── Main information architecture ────────────────────────────────────── */
.imp-content { position: relative; z-index: 1; display: grid; align-items: start; grid-template-columns: 220px minmax(0, 1fr); gap: 2.5rem; width: min(1120px, 100%); margin: auto; }
.imp-aside { position: sticky; top: 80px; align-self: start; height: fit-content; z-index: 3; }
.imp-aside-label { margin: 0 0 .65rem .2rem; color: #94a3b8; font-size: .63rem; font-weight: 800; letter-spacing: .17em; text-transform: uppercase; }
.imp-aside-nav { display: grid; gap: .25rem; padding: .55rem; border: 1px solid #e2e8f0; border-radius: 16px; background: rgba(255,255,255,.68); box-shadow: 0 12px 30px -24px rgba(15,23,42,.5); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
.dark .imp-aside-nav { border-color: #1e293b; background: rgba(15,23,42,.68); box-shadow: 0 14px 35px -24px rgba(0,0,0,.8); }
.imp-aside-link { display: flex; align-items: center; gap: .65rem; min-height: 34px; padding: .48rem .55rem; border-radius: 9px; color: #64748b; font-size: .69rem; font-weight: 700; text-decoration: none; transition: color .25s ease, background .25s ease, transform .25s ease; }
.dark .imp-aside-link { color: #94a3b8; }
.imp-aside-link:hover { color: #2563eb; background: rgba(37,99,235,.08); transform: translateX(2px); }
.dark .imp-aside-link:hover { color: #93c5fd; background: rgba(37,99,235,.15); }
.imp-aside-number { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; border: 1px solid #cbd5e1; border-radius: 6px; color: #64748b; font-size: .59rem; }
.dark .imp-aside-number { border-color: #475569; color: #94a3b8; }
.imp-aside-trust { display: flex; align-items: flex-start; gap: .55rem; margin-top: .8rem; padding: .8rem; border: 1px solid rgba(16,185,129,.2); border-radius: 13px; color: #047857; background: rgba(16,185,129,.07); font-size: .65rem; font-weight: 700; line-height: 1.45; }
.dark .imp-aside-trust { color: #6ee7b7; border-color: rgba(52,211,153,.2); background: rgba(6,78,59,.18); }
.imp-aside-trust svg { flex: 0 0 auto; color: #10b981; }
.imp-main { min-width: 0; }
.imp-stack { display: grid; gap: 1rem; }

/* ── Cards & content ───────────────────────────────────────────────────── */
.imp-card { position: relative; padding: 1.75rem; border: 1px solid #e2e8f0; border-radius: 18px; background: rgba(255,255,255,.84); box-shadow: 0 15px 35px -32px rgba(15,23,42,.65); scroll-margin-top: 98px; transition: border-color .3s ease, box-shadow .3s ease, transform .3s cubic-bezier(.32,.72,0,1); }
.dark .imp-card { border-color: #1e293b; background: rgba(15,23,42,.8); box-shadow: 0 18px 40px -32px rgba(0,0,0,.85); }
.imp-card:hover { border-color: #cbd5e1; box-shadow: 0 22px 42px -31px rgba(15,23,42,.38); transform: translateY(-2px); }
.dark .imp-card:hover { border-color: #334155; box-shadow: 0 22px 44px -31px rgba(0,0,0,.9); }
.imp-card-header { display: flex; align-items: center; gap: .8rem; margin-bottom: 1.35rem; }
.imp-icon { display: flex; align-items: center; justify-content: center; width: 42px; height: 42px; flex: 0 0 auto; border: 1px solid; border-radius: 13px; }
.imp-icon-blue { color: #2563eb; border-color: rgba(59,130,246,.2); background: rgba(59,130,246,.1); }
.imp-icon-indigo { color: #6366f1; border-color: rgba(99,102,241,.2); background: rgba(99,102,241,.1); }
.imp-icon-emerald { color: #10b981; border-color: rgba(16,185,129,.2); background: rgba(16,185,129,.1); }
.imp-icon-amber { color: #f59e0b; border-color: rgba(245,158,11,.2); background: rgba(245,158,11,.1); }
.imp-icon-violet { color: #8b5cf6; border-color: rgba(139,92,246,.2); background: rgba(139,92,246,.1); }
.imp-icon-slate { color: #64748b; border-color: rgba(100,116,139,.22); background: rgba(100,116,139,.1); }
.imp-heading { color: #1e293b; font-size: .98rem; font-weight: 800; letter-spacing: -.02em; }
.dark .imp-heading { color: #e2e8f0; }
.imp-sub { margin-top: .18rem; color: #94a3b8; font-size: .68rem; }
.dark .imp-sub { color: #64748b; }
.imp-label { margin-bottom: .3rem; color: #94a3b8; font-size: .61rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.imp-value { color: #1e293b; font-size: .86rem; font-weight: 600; line-height: 1.6; }
.dark .imp-value { color: #e2e8f0; }
.imp-legal { color: #475569; font-size: .86rem; line-height: 1.82; }
.dark .imp-legal { color: #94a3b8; }
.imp-legal strong { color: #334155; font-weight: 700; }
.dark .imp-legal strong { color: #cbd5e1; }
.imp-legal p + p { margin-top: 1rem; }
.imp-legal a { color: #2563eb; text-decoration: none; }
.imp-legal a:hover { text-decoration: underline; text-underline-offset: 3px; }
.dark .imp-legal a { color: #60a5fa; }
.imp-contact-link { display: inline-flex; align-items: center; gap: .55rem; padding: .6rem .75rem; border: 1px solid #e2e8f0; border-radius: 10px; color: #475569; background: #f8fafc; font-size: .78rem; font-weight: 700; text-decoration: none; transition: color .2s ease, border-color .2s ease, background .2s ease; }
.dark .imp-contact-link { border-color: #334155; color: #cbd5e1; background: rgba(2,6,23,.28); }
.imp-contact-link:hover { color: #2563eb; border-color: #93c5fd; background: #eff6ff; }
.dark .imp-contact-link:hover { color: #93c5fd; border-color: #3b82f6; background: rgba(37,99,235,.12); }
.imp-uid { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.imp-uid-code { color: #0f172a; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 1.15rem; font-weight: 800; letter-spacing: .08em; }
.imp-uid-note { max-width: 20rem; color: #64748b; font-size: .78rem; font-weight: 650; line-height: 1.5; }
.dark .imp-uid-note { color: #94a3b8; }
.dark .imp-uid-code { color: #f8fafc; }
.imp-callout { display: flex; align-items: flex-start; gap: .7rem; margin-bottom: 1.2rem; padding: .85rem .95rem; border: 1px solid; border-radius: 12px; font-size: .74rem; line-height: 1.6; }
.imp-callout svg { flex: 0 0 auto; width: 17px; height: 17px; margin-top: .1rem; }
.imp-callout-amber { color: #a16207; border-color: #fde68a; background: #fffbeb; }
.dark .imp-callout-amber { color: #fcd34d; border-color: rgba(245,158,11,.25); background: rgba(120,53,15,.16); }
.imp-callout-blue { color: #1d4ed8; border-color: #bfdbfe; background: #eff6ff; }
.dark .imp-callout-blue { color: #93c5fd; border-color: rgba(59,130,246,.25); background: rgba(30,64,175,.15); }
.imp-legal-divider { display: flex; align-items: center; gap: .8rem; margin: .15rem 0 .1rem; color: #94a3b8; font-size: .62rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.imp-legal-divider::before, .imp-legal-divider::after { content: ''; height: 1px; flex: 1; background: #e2e8f0; }
.dark .imp-legal-divider::before, .dark .imp-legal-divider::after { background: #1e293b; }
.imp-footer-note { display: flex; align-items: flex-start; gap: .65rem; padding: .85rem 1rem; border: 1px solid #e2e8f0; border-radius: 12px; color: #94a3b8; background: rgba(248,250,252,.7); font-size: .7rem; line-height: 1.6; }
.dark .imp-footer-note { border-color: #1e293b; background: rgba(15,23,42,.55); }
.imp-footer-note svg { flex: 0 0 auto; margin-top: .1rem; color: #64748b; }
.imp-footer-note a { color: #2563eb; text-decoration: none; }
.imp-footer-note a:hover { text-decoration: underline; text-underline-offset: 3px; }
.dark .imp-footer-note a { color: #60a5fa; }

@media (max-width: 900px) {
    .imp-hero-inner { grid-template-columns: minmax(0, 1fr) 300px; }
    .imp-hero-art { width: 340px; }
    .imp-content { grid-template-columns: 185px minmax(0, 1fr); gap: 1.5rem; }
}
@media (max-width: 700px) {
    .imp-hero-inner { display: block; min-height: 0; padding: 1.9rem 1rem .75rem; }
    .imp-hero-art { width: min(100%, 390px); margin: .1rem auto -1.25rem; }
    .imp-hero h1 { font-size: clamp(2rem, 9vw, 2.9rem); }
    .imp-content { display: block; }
    .imp-aside { position: static; margin-bottom: 1.7rem; }
    .imp-aside-nav { display: flex; flex-wrap: wrap; gap: .15rem; }
    .imp-aside-label { margin-top: 0; }
    .imp-aside-link { flex: 1 1 44%; }
    .imp-aside-trust { display: inline-flex; max-width: 22rem; }
}
@media (max-width: 480px) {
    .imp-page { padding: 2rem .65rem 3.5rem; }
    .imp-hero-inner { padding-left: .8rem; padding-right: .8rem; }
    .imp-hero-lead { font-size: .86rem; }
    .imp-hero-meta { gap: .4rem; }
    .imp-meta-pill { font-size: .6rem; padding: .48rem .56rem; }
    .imp-card { padding: 1.25rem; border-radius: 15px; }
    .imp-card-header { margin-bottom: 1.1rem; }
    .imp-uid { display: block; }
    .imp-uid-code { margin-top: .75rem; font-size: 1rem; }
    .imp-contact-link { width: 100%; }
    .imp-legal { font-size: .82rem; }
}
@media (prefers-reduced-motion: reduce) {
    .imp-kicker-mark::after, .imp-art-orbit, .imp-art-orbit-reverse, .imp-art-pulse, .imp-art-glow, .imp-art-float-a, .imp-art-float-b { animation: none; }
    .imp-card, .imp-aside-link { transition: none; }
}
