/*
 * VisionThinks – Legal
 *
 * Gemeinsame Layoutregeln für Legal-Seiten.
 * Seitenspezifische Inhalte verbleiben in den jeweiligen Consumer-CSS-Dateien.
 */

@media (max-width: 639px) {
    .vt-page-legal .vt-nogrid {
        margin-top: -80px;
    }
}

/* Divider ab 640 px an der Unterkante des Small Headers. */
@media (min-width: 640px) {
    .vt-page-legal.vt-small-header .vt-header-gap {
        position: static;
    }

    .vt-page-legal.vt-small-header .vt-header-divider {
        display: block;
        position: absolute;
        top: auto;
        bottom: -50px;
        left: 50%;
        margin: 0 !important;
        padding: 0 !important;
        transform: translateX(-50%);
    }
}


/* =====================================================================
   2026-11-12 | Claude | Legal-Muster L1 – helles Redaktions-Layout
   Markup: vt_legal_render() in legal/vt-legal.php (.vt-legal …).
   Die NoGrid-Regeln oben gelten weiter für noch nicht umgestellte Seiten.
   ===================================================================== */
html:has(.vt-legal) { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html:has(.vt-legal) { scroll-behavior: auto; } }

/* Elementor-Container: heller Grund über volle Breite, Inhalt auf der Achse */
.vt-page-legal .webhosting-back:has(.vt-legal) {
    background: #f6f8fb !important;
    padding-top: 56px !important;
    padding-bottom: 88px !important;
    padding-left: calc(max(0px, (100% - 1320px) / 2) + var(--vt-achse-l)) !important;
    padding-right: calc(max(0px, (100% - 1320px) / 2) + var(--vt-achse-r)) !important;
}
@media (min-width: 1400px) {
    .vt-page-legal .webhosting-back:has(.vt-legal) {
        padding-right: calc(max(0px, (100% - 1320px) / 2) + var(--vt-achse-l)) !important;
    }
}
@media (max-width: 767px) {
    .vt-page-legal .webhosting-back:has(.vt-legal) { padding-top: 40px !important; padding-bottom: 56px !important; }
}
.vt-page-legal .webhosting-back:has(.vt-legal) > *:has(.vt-legal),
.vt-page-legal .webhosting-back:has(.vt-legal) > *:has(.vt-legal) > * {
    padding-left: 0 !important;
    padding-right: 0 !important;
    max-width: none !important;
}

.vt-legal { color: #2b3a4f; font-size: 17px; line-height: 1.7; }
.vt-legal__grid {
    display: grid;
    grid-template-columns: minmax(0, 860px) minmax(0, 280px);
    justify-content: space-between;
    gap: 48px;
    align-items: start;
}
.vt-legal__text { min-width: 0; }

.vt-legal__kopf {
    position: relative;
    min-height: 48px; /* L3: Wasserzeichen oben bündig mit Stand, rechts bündig mit der Linie */
    --vt-watermark-opacity: .14;
    --vt-watermark-top: 0px;
    --vt-watermark-right: 0px;
    --vt-watermark-top-mobile: 0px;
    --vt-watermark-right-mobile: 0px;
}
@media (max-width: 767px) { .vt-legal__kopf { min-height: 32px; } }
.vt-legal__kopf [class*="vt-ui-watermark--"] { filter: brightness(0); }
.vt-legal .vt-legal__titel {
    margin: 0;
    color: #12233e;
    font-size: 40px;
    line-height: 1.2 !important;
    font-weight: 700;
    text-transform: none;
}
.vt-legal__stand { margin: 10px 0 0; font-size: 14px; line-height: 1.5; color: #5b6b80; }

.vt-legal__abschnitt {
    margin-top: 28px;
    padding-top: 28px;
    border-top: 1px solid #d6dde7;
    scroll-margin-top: 24px;
}
.vt-legal__kopf + .vt-legal__toc-mobil + .vt-legal__abschnitt,
.vt-legal__kopf + .vt-legal__abschnitt { margin-top: 36px; }
.vt-legal__abschnitt h2 {
    margin: 0 0 12px;
    color: #1d5fae;
    font-size: 22px;
    line-height: 1.3;
    font-weight: 700;
    text-transform: none;
    letter-spacing: 0;
}
.vt-legal__abschnitt h2[id] { scroll-margin-top: 24px; }
.vt-legal__abschnitt p { margin: 0 0 14px; color: #2b3a4f; }
.vt-legal__abschnitt ul { margin: 0 0 14px; padding-left: 22px; }
.vt-legal__abschnitt li { margin: 0 0 4px; }
.vt-legal__abschnitt > :last-child { margin-bottom: 0; }
.vt-legal a { color: #1d5fae; }

/* Inhaltsverzeichnis Desktop: rechts, mitlaufend (sticky + Sticky-Follow, L2) */
.vt-legal__aside {
    position: sticky;
    top: calc(var(--wp-admin--admin-bar--height, 0px) + 24px);
    padding-left: 20px;
    border-left: 1px solid #d6dde7;
}
.vt-legal__toc-titel {
    margin: 0 0 12px;
    color: #12233e;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.vt-legal__toc-liste { list-style: none; margin: 0; padding: 0; font-size: 14px; line-height: 1.45; }
.vt-legal__toc-liste li { margin: 0 0 8px; }
.vt-legal__toc-liste a { color: #4a5a70; text-decoration: none; }
.vt-legal__toc-liste a:hover,
.vt-legal__toc-liste a:focus-visible { color: #1d5fae; text-decoration: underline; }

/* Inhaltsverzeichnis mobil: eingeklappt oben, weich aufklappend (L2, vt-legal.js) */
.vt-legal__kopf + .vt-legal__toc-mobil { margin-top: 24px; }
.vt-legal__toc-mobil {
    margin-top: 24px;
    border: 1px solid #d6dde7;
    border-radius: 4px;
    background: #fff;
}
.vt-legal .vt-legal__toc-knopf {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    margin: 0;
    padding: 10px 14px;
    border: 0 !important;
    border-radius: 4px;
    background: transparent !important;
    box-shadow: none !important;
    color: #12233e !important;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.4;
    text-align: left;
    text-transform: none;
    letter-spacing: 0;
    cursor: pointer;
}
.vt-legal .vt-legal__toc-knopf::after {
    content: "▾";
    font-size: 13px;
    transition: transform .3s ease;
}
.vt-legal .vt-legal__toc-knopf[aria-expanded="true"]::after { transform: rotate(180deg); }
.vt-legal .vt-legal__toc-knopf:focus-visible { outline: 2px solid #1d5fae; outline-offset: 2px; }
.vt-legal__toc-panel { display: grid; grid-template-rows: 1fr; }
.vt-legal__toc-panel > div { overflow: hidden; }
.vt-legal__toc-mobil[data-bereit] .vt-legal__toc-panel { grid-template-rows: 0fr; transition: grid-template-rows .3s ease; }
.vt-legal__toc-mobil[data-bereit] .vt-legal__toc-panel > div { visibility: hidden; transition: visibility 0s linear .3s; }
.vt-legal__toc-mobil.is-offen .vt-legal__toc-panel { grid-template-rows: 1fr; }
.vt-legal__toc-mobil.is-offen .vt-legal__toc-panel > div { visibility: visible; transition: visibility 0s; }
.vt-legal__toc-mobil .vt-legal__toc-liste { padding: 0 14px 12px; }
@media (prefers-reduced-motion: reduce) {
    .vt-legal__toc-mobil[data-bereit] .vt-legal__toc-panel,
    .vt-legal .vt-legal__toc-knopf::after { transition: none; }
}

@media (min-width: 1025px) {
    .vt-legal__toc-mobil { display: none; }
}
@media (max-width: 1024px) {
    .vt-legal__grid { grid-template-columns: minmax(0, 1fr); }
    .vt-legal__aside { display: none; }
}
@media (max-width: 749px) {
    .vt-legal .vt-legal__titel { font-size: 32px; line-height: 1.15; }
    .vt-legal__abschnitt h2 { font-size: 20px; }
}
@media (max-width: 380px) {
    .vt-legal .vt-legal__titel { font-size: 26px; }
}
