.mvps-cb { position: fixed; left: 50%; bottom: 16px; transform: translateX(-50%); z-index: 10000; width: min(94vw, 640px); max-height: 85vh; overflow: auto; box-sizing: border-box; background: #fff; color: var(--mv-ink,#1b2430); border: 1px solid rgba(0,0,0,.15); border-radius: 12px; box-shadow: 0 8px 28px rgba(0,0,0,.25); padding: 16px 18px; font: 15px/1.5 inherit; font-family: inherit; }
.mvps-cb:focus { outline: none; }
.mvps-cb__x { position: absolute; top: 6px; right: 10px; background: none; border: 0; font-size: 1.6rem; line-height: 1; cursor: pointer; color: #5b6670; padding: 6px 8px; }
.mvps-cb__title { margin: 0 1.6rem .4rem 0; font-size: 1.1rem; line-height: 1.3; }
.mvps-cb__text { margin: 0 0 .5rem; }
.mvps-cb__links { margin: 0 0 .8rem; font-size: .88rem; }
.mvps-cb__links a { color: var(--mv-accent,#1d4ed8); text-decoration: underline; }
.mvps-cb__actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.mvps-cb__btn { flex: 1 1 130px; min-height: 44px; background: var(--mv-accent,#1d4ed8); color: #fff; border: 2px solid var(--mv-accent,#1d4ed8); border-radius: 999px; padding: .5rem 1rem; font: inherit; font-weight: 700; cursor: pointer; }
.mvps-cb__btn:hover, .mvps-cb__btn:focus-visible { filter: brightness(1.1); outline: 2px solid var(--mv-ink,#1b2430); outline-offset: 2px; }
.mvps-cb__btn--ghost { background: #fff; color: var(--mv-accent,#1d4ed8); }
.mvps-cb__settings { margin-top: 1rem; border-top: 1px solid rgba(0,0,0,.1); padding-top: .8rem; }
.mvps-cb__settings[hidden] { display: none; }
.mvps-cb__cat { margin: 0 0 .9rem; }
.mvps-cb__row { display: flex; align-items: center; gap: .6rem; font-weight: 700; cursor: pointer; }
.mvps-cb__row input { width: 20px; height: 20px; accent-color: var(--mv-accent,#1d4ed8); }
.mvps-cb__cat-desc { margin: .2rem 0 0 1.9rem; font-size: .88rem; color: #3d4752; }
.mvps-cb__svc { margin: .3rem 0 0 1.9rem; font-size: .85rem; }
.mvps-cb__svc ul { margin: .3rem 0 0 1.1rem; padding: 0; list-style: disc; }
.mvps-cb-fab { position: fixed; left: 16px; bottom: 16px; z-index: 9997; width: 40px; height: 40px; border-radius: 50%; border: 0; background: var(--mv-accent,#1d4ed8); color: #fff; cursor: pointer; box-shadow: 0 2px 10px rgba(0,0,0,.3); display: flex; align-items: center; justify-content: center; opacity: .9; padding: 0; }
.mvps-cb-fab:hover, .mvps-cb-fab:focus-visible { opacity: 1; outline: 2px solid var(--mv-ink,#1b2430); outline-offset: 2px; }
.mvps-cb-fab--up { bottom: 72px; }
.mvps-cb-ph { margin: 1rem 0; padding: 1rem; border: 1px dashed rgba(0,0,0,.3); border-radius: 10px; background: #f4f6f9; text-align: center; }
.mvps-cb-ph p { margin: 0 0 .6rem; font-size: .92rem; }
.mvps-cb-ph .mvps-cb__btn { flex: none; }
iframe[data-mvps-cat]:not([src]) { display: none; }
.mvps-cb__link-btn { background: none; border: 0; padding: 0; color: var(--mv-accent,#1d4ed8); text-decoration: underline; cursor: pointer; font: inherit; }
.mvps-legal-bar { text-align: center; font-size: .85rem; padding: .7rem 1rem; background: #f4f6f9; border-top: 1px solid rgba(0,0,0,.08); color: var(--mv-ink,#1b2430); }
.mvps-legal-bar a { color: inherit; text-decoration: underline; margin: 0 .2rem; }
.mvps-legal-bar p { margin: .3rem 0 0; font-size: .8rem; }
.mvps-cookie-table-wrap { overflow-x: auto; margin: 0 0 1rem; }
.mvps-cookie-table { width: 100%; border-collapse: collapse; font-size: .9rem; }
.mvps-cookie-table th, .mvps-cookie-table td { border: 1px solid rgba(0,0,0,.15); padding: .4rem .6rem; text-align: left; vertical-align: top; }
.mvps-cookie-table th { background: #f4f6f9; }
@media (max-width: 480px) { .mvps-cb { bottom: 8px; padding: 14px; } .mvps-cb__btn { flex-basis: 100%; } }
@media print { .mvps-cb, .mvps-cb-fab, .mvps-legal-bar { display: none !important; } }

.mvps-form-wrap { max-width: 720px; margin: 1.5rem 0; }
.mvps-form { background: linear-gradient(180deg, var(--mv-soft,#f7f9ff), #fff); border: 1px solid var(--mv-line,#dfe6f5); border-radius: 18px; padding: 1.6rem 1.7rem 1.4rem; box-shadow: 0 2px 10px rgba(20,30,50,.07); position: relative; overflow: hidden; }
.mvps-form::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 5px; background: linear-gradient(180deg, var(--mv-accent,#1d4ed8), var(--mv-accent-2,#5b8cff)); }
.mvps-form__title { margin: 0 0 .2rem; font-size: 1.25rem; line-height: 1.3; }
.mvps-form__hint { margin: 0 0 1.1rem !important; font-size: .85rem; color: #5b6670; }
.mvps-form p { margin: 0 0 1rem; }
.mvps-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1rem; }
.mvps-form label { font-weight: 600; display: block; font-size: .92rem; color: var(--mv-ink,#1b2430); }
.mvps-form small { font-weight: 400; color: #5b6670; }
.mvps-form input[type="text"], .mvps-form input[type="email"], .mvps-form input[type="url"], .mvps-form select, .mvps-form textarea { width: 100%; box-sizing: border-box; margin-top: .3rem; padding: .7rem .85rem; background: #fff; border: 1px solid #c9d3e6; border-radius: 10px; font: inherit; font-weight: 400; color: var(--mv-ink,#1b2430); transition: border-color .12s ease, box-shadow .12s ease; }
.mvps-form input:focus, .mvps-form select:focus, .mvps-form textarea:focus { outline: none; border-color: var(--mv-accent,#1d4ed8); box-shadow: 0 0 0 3px rgba(var(--mv-accent-rgb,29,78,216),.18); }
.mvps-form textarea { resize: vertical; min-height: 130px; }
.mvps-form__consent label { font-weight: 400; display: flex; gap: .6rem; align-items: flex-start; font-size: .88rem; color: #3d4752; }
.mvps-form__consent input { margin-top: .25rem; width: 18px; height: 18px; flex: none; accent-color: var(--mv-accent,#1d4ed8); }
.mvps-form__consent span { flex: 1; }
.mvps-form__consent a { color: var(--mv-accent,#1d4ed8) !important; text-decoration: underline !important; }
.mvps-form__hp { position: absolute !important; left: -9999px !important; height: 0; overflow: hidden; }
.mvps-form__btn { flex: none; min-width: 200px; margin-top: .2rem; }
.mvps-form__msg { padding: .8rem 1rem; border-radius: 12px; font-weight: 600; margin: 0 0 1rem; }
.mvps-form__msg--ok { background: #e7f5ec; color: #1b6e36; border: 1px solid #bfe3cb; }
.mvps-form__msg--err { background: #fdecec; color: #a12727; border: 1px solid #f3c4c4; }
@media (max-width: 600px) { .mvps-form { padding: 1.2rem 1.1rem; } .mvps-form__row { grid-template-columns: 1fr; } .mvps-form__btn { width: 100%; } }
.mvps-form label br { display: none; }
.mvps-legal-bar { line-height: 1.9; }
.mvps-legal-bar a { display: inline-block; padding: 0 .35rem; text-decoration: none; border-bottom: 1px dotted currentColor; }
.mvps-legal-bar a:hover { color: var(--mv-accent,#1d4ed8); border-bottom-style: solid; }
/* Schwebende Knöpfe (Cookie-Rad, Ask-Button, Nach-oben) sollen den Fußtext nie verdecken */
.mvps-legal-bar { padding-bottom: 7.5rem; padding-left: 1rem; padding-right: 4.5rem; box-sizing: border-box; }
@media (min-width: 900px) { .mvps-legal-bar { padding-bottom: 4.5rem; padding-left: 15rem; padding-right: 5rem; } }
/* 3.22.2: kompakte Reihe, eigener Streifen unten für die schwebenden Knöpfe */
.mvps-legal-bar { padding: .8rem .8rem 8rem; font-size: .8rem; line-height: 1.7; }
.mvps-legal-bar a { padding: 0 .1rem; margin: 0; white-space: nowrap; }
.mvps-legal-bar > span { margin: 0 .15rem; opacity: .6; }
.mvps-legal-bar p { margin: .4rem 0 0; font-size: .75rem; line-height: 1.4; }
@media (min-width: 900px) { .mvps-legal-bar { padding: .8rem 1rem 5.5rem; } }

/* 5.4.2: Auf dem Handy sitzt der Cookie-Knopf rechts unten (Frage-Knopf bleibt links), damit er keine Links verdeckt */
@media (max-width:782px){
.mvps-cb-fab,.mvps-cb-fab--up,body.mvps-has-app-fab .mvps-cb-fab,body.mvps-has-app-fab .mvps-cb-fab--up{left:auto;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px))}
.mvps-legal-bar{padding-bottom:calc(4rem + env(safe-area-inset-bottom,0px))!important;padding-left:.8rem!important;padding-right:.8rem!important}
}
@media (min-width:783px){.mvps-legal-bar{padding-bottom:4rem!important}}

/* In der App gibt es den Cookie-Button unter Werkzeuge; der runde Knopf wuerde Inhalte verdecken. */
.mvps-mm-body .mvps-cb-fab{display:none!important}

/* Am Seitenende nicht ins Leere ziehen lassen (iPhone-Gummiband, Scroll-Verkettung): die Seite endet bei der letzten Zeile */
@media (max-width: 782px) { html { overscroll-behavior-y: none; } }
