/* Einstiegsseite (/willkommen, /testzugang) - eigenstaendig, keine Fremd-Hosts (Spec E3/E8, AC-D1). */

/* Schrift: selbst gehostet unter /fonts/ (variable woff2, latin, OFL); fehlt sie, greift der System-Fallback. */
@font-face {
    font-family: 'Plus Jakarta Sans';
    font-style: normal;
    font-weight: 400 800;
    font-display: swap;
    src: url('/fonts/PlusJakartaSans-VF.woff2') format('woff2');
}

:root {
    --lp-ink: #14213D;
    --lp-ink-strong: #0B2547;
    --lp-text: #3D4A5C;
    --lp-muted: #4A5568;
    --lp-navy: #0B3B73;
    --lp-navy-dark: #072A54;
    --lp-green: #1F7A3F;
    --lp-green-light: #2E9E57;
    --lp-green-tint: #E3F2E8;
    --lp-blue-tint: #E8EEF7;
    --lp-bg-soft: #F4F7FB;
    --lp-white: #FFFFFF;
    --lp-border: #E3E8EF;
    --lp-border-strong: #C9D3E0;
    --lp-footer-bg: #071A33;
    --lp-footer-text: #A9B8CE;
    --lp-focus: #B7791F; /* dunkleres Bernstein (vorher #F2B33D = 1,86:1 auf Weiss); >= 3:1 auf allen Abschnittsfarben (WCAG 1.4.11) */
    --lp-error: #B42318;
    --lp-error-tint: #FDECEA;
    --lp-font: 'Plus Jakarta Sans', system-ui, sans-serif;
    --lp-max-width: 1200px;
}

*, *::before, *::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }
}

body {
    margin: 0;
    font-family: var(--lp-font);
    color: var(--lp-ink);
    background: var(--lp-white);
}

a {
    color: var(--lp-navy);
}

a:hover {
    color: var(--lp-navy-dark);
}

/* Fokus sichtbar (im Design nicht definiert) */
:focus-visible {
    outline: 3px solid var(--lp-focus);
    outline-offset: 2px;
}

.lp-page {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    font-family: var(--lp-font);
    color: var(--lp-ink);
    background: var(--lp-white);
}

.lp-main {
    flex: 1 0 auto;
}

.lp-container {
    max-width: var(--lp-max-width);
    margin: 0 auto;
    padding-left: 24px;
    padding-right: 24px;
}

/* Kopfzeile */
.lp-header {
    border-bottom: 1px solid var(--lp-border);
    background: var(--lp-white);
}

.lp-header__inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding-top: 16px;
    padding-bottom: 16px;
}

.lp-brand {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 44px;
    text-decoration: none;
    color: var(--lp-navy);
}

.lp-brand__text {
    display: flex;
    flex-direction: column;
    line-height: 1.1;
}

.lp-brand__name {
    font-size: 22px;
    font-weight: 800;
    letter-spacing: -0.02em;
}

.lp-brand__claim {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--lp-muted);
}

.lp-nav {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 28px;
    font-size: 15px;
    font-weight: 600;
}

.lp-nav a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    color: var(--lp-ink);
    text-decoration: none;
}

.lp-nav a:hover {
    text-decoration: underline;
}

.lp-header__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

/* Buttons (Touch-Ziele >= 44 px) */
.lp-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 18px;
    border-radius: 10px;
    border: 1.5px solid transparent;
    font: inherit;
    font-size: 15px;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
}

.lp-btn--outline {
    border-color: var(--lp-navy);
    color: var(--lp-navy);
    background: transparent;
}

.lp-btn--primary {
    background: var(--lp-green);
    color: var(--lp-white);
}

.lp-btn--primary:hover {
    background: #17622F;
    color: var(--lp-white);
}

.lp-btn--outline:hover {
    background: var(--lp-bg-soft);
}

/* Fusszeile */
.lp-footer {
    background: var(--lp-footer-bg);
    color: var(--lp-footer-text);
}

.lp-footer__inner {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 28px;
    justify-content: space-between;
    padding-top: 28px;
    padding-bottom: 28px;
    font-size: 14px;
}

.lp-footer__nav {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 24px;
}

.lp-footer a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    color: var(--lp-footer-text);
}

.lp-footer a:hover {
    color: var(--lp-white);
}

/* Mobil: ein Spalte, Navigation ausblenden, "Anmelden" bleibt sichtbar */
@media (max-width: 760px) {
    .lp-nav {
        display: none;
    }

    .lp-header__inner {
        padding-top: 12px;
        padding-bottom: 12px;
    }

    .lp-header__actions {
        width: 100%;
    }

    .lp-header__actions .lp-btn {
        flex: 1 1 140px;
    }
}

@media (max-width: 480px) {
    .lp-container {
        padding-left: 16px;
        padding-right: 16px;
    }

    .lp-brand__claim {
        display: none;
    }
}

/* ===== Hero und Login-Kasten (Task 4) ===== */
.lp-hero {
    background: var(--lp-bg-soft);
}

.lp-hero__inner {
    display: flex;
    flex-wrap: wrap;
    gap: 56px;
    align-items: center;
    padding-top: 72px;
    padding-bottom: 80px;
}

.lp-hero__copy {
    flex: 1 1 520px;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.lp-badge {
    align-self: flex-start;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--lp-green);
    background: var(--lp-green-tint);
    padding: 6px 12px;
    border-radius: 999px;
}

.lp-hero__title {
    margin: 0;
    font-size: 56px;
    line-height: 1.05;
    font-weight: 800;
    letter-spacing: -0.03em;
    color: var(--lp-ink-strong);
}

.lp-hero__lead {
    margin: 0;
    max-width: 560px;
    font-size: 19px;
    line-height: 1.6;
    color: var(--lp-text);
}

.lp-hero__cta {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 8px;
}

.lp-hero__buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.lp-hero__hint {
    margin: 0;
    max-width: 520px;
    font-size: 14px;
    line-height: 1.5;
    color: var(--lp-muted);
}

.lp-btn--lg {
    min-height: 52px;
    padding: 0 24px;
    border-radius: 12px;
    font-size: 16px;
}

.lp-btn--light {
    background: var(--lp-white);
    border-color: var(--lp-border-strong);
    color: var(--lp-ink-strong);
}

.lp-btn--light:hover {
    background: var(--lp-bg-soft);
    color: var(--lp-ink-strong);
}

.lp-login {
    flex: 1 1 380px;
    max-width: 440px;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 18px;
    padding: 32px;
    background: var(--lp-white);
    border: 1px solid var(--lp-border);
    border-radius: 20px;
    box-shadow: 0 24px 48px -24px rgba(11, 37, 71, 0.28);
    scroll-margin-top: 16px;
}

.lp-login__head {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.lp-login__title {
    margin: 0;
    font-size: 24px;
    font-weight: 800;
    color: var(--lp-ink-strong);
}

.lp-login__intro {
    margin: 0;
    font-size: 15px;
    color: var(--lp-muted);
}

.lp-login__form {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin: 0;
}

.lp-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.lp-field__row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
}

.lp-field label {
    font-size: 14px;
    font-weight: 700;
}

.lp-field__row a {
    font-size: 14px;
    font-weight: 600;
}

.lp-field input {
    min-height: 48px;
    width: 100%;
    border: 1.5px solid var(--lp-border-strong);
    border-radius: 10px;
    padding: 0 14px;
    font: inherit;
    font-size: 16px;
    color: var(--lp-ink);
    background: var(--lp-white);
}

.lp-check {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 44px;
    font-size: 15px;
    color: var(--lp-text);
}

.lp-check input {
    width: 20px;
    height: 20px;
    margin: 0;
    accent-color: var(--lp-navy);
}

.lp-check label {
    flex: 1;
    min-height: 44px;
    display: flex;
    align-items: center;
    cursor: pointer;
}

.lp-login__submit {
    min-height: 52px;
    border: 0;
    border-radius: 12px;
    background: var(--lp-navy);
    color: var(--lp-white);
    font: inherit;
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
}

.lp-login__submit:hover {
    background: var(--lp-navy-dark);
}

.lp-login__links {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding-top: 16px;
    border-top: 1px solid var(--lp-border);
    font-size: 15px;
    line-height: 1.5;
    color: var(--lp-muted);
}

.lp-login__links a {
    font-weight: 700;
}

@media (max-width: 760px) {
    .lp-hero__inner {
        gap: 40px;
        padding-top: 40px;
        padding-bottom: 48px;
    }

    .lp-hero__title {
        font-size: 38px;
    }

    .lp-hero__lead {
        font-size: 17px;
    }

    .lp-login {
        flex-basis: 100%;
        max-width: none;
        padding: 24px;
    }
}

/* ===== Abschnitte: Funktionen und Ablauf (Task 6) ===== */
.lp-section {
    display: flex;
    flex-direction: column;
    gap: 56px;
    padding-top: 96px;
    padding-bottom: 96px;
}

.lp-section__head {
    max-width: 720px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.lp-section__title {
    margin: 0;
    font-size: 40px;
    line-height: 1.15;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--lp-ink-strong);
}

.lp-section__lead {
    margin: 0;
    font-size: 18px;
    line-height: 1.6;
    color: var(--lp-text);
}

.lp-features {
    background: var(--lp-white);
}

.lp-features__body {
    display: flex;
    flex-wrap: wrap;
    gap: 48px;
    align-items: center;
}

.lp-features__figure {
    flex: 1 1 420px;
    min-width: 0;
    margin: 0;
    display: flex;
    justify-content: center;
    padding: 28px;
    background: var(--lp-ink-strong);
    border-radius: 24px;
}

.lp-features__figure img {
    display: block;
    /* Bild in doppelter Aufloesung (780x1524) fuer scharfe Darstellung, angezeigt hoechstens 390 px breit */
    max-width: min(100%, 390px);
    height: auto;
    border-radius: 14px;
    background: var(--lp-white);
}

.lp-features__lists {
    flex: 1 1 420px;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 36px;
}

.lp-features__group {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.lp-features__heading {
    margin: 0;
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 22px;
    font-weight: 800;
    color: var(--lp-ink-strong);
}

.lp-features__icon {
    flex: none;
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.lp-features__icon--green {
    background: var(--lp-green-tint);
    color: var(--lp-green);
}

.lp-features__icon--blue {
    background: var(--lp-blue-tint);
    color: var(--lp-navy);
}

.lp-checklist {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
    font-size: 16px;
    line-height: 1.5;
    color: #2A374B;
}

.lp-checklist li {
    display: flex;
    gap: 12px;
}

.lp-checklist svg {
    flex: none;
    margin-top: 2px;
}

.lp-checklist--green svg {
    color: var(--lp-green);
}

.lp-checklist--blue svg {
    color: var(--lp-navy);
}

.lp-steps {
    background: var(--lp-bg-soft);
}

.lp-steps .lp-section {
    gap: 40px;
}

.lp-steps__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 24px;
}

.lp-steps__item {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 28px;
    background: var(--lp-white);
    border-radius: 20px;
}

.lp-steps__number {
    width: 44px;
    height: 44px;
    border-radius: 999px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--lp-ink-strong);
    color: var(--lp-white);
    font-size: 18px;
    font-weight: 800;
}

.lp-steps__number--green {
    background: var(--lp-green);
}

.lp-steps__title {
    margin: 0;
    font-size: 20px;
    font-weight: 800;
    color: var(--lp-ink);
}

.lp-steps__link {
    color: var(--lp-navy);
    text-decoration: underline;
    text-underline-offset: 4px;
}

.lp-steps__link:hover {
    text-decoration-thickness: 2px;
}

.lp-steps__text {
    margin: 0;
    font-size: 16px;
    line-height: 1.6;
    color: var(--lp-text);
}

@media (max-width: 760px) {
    .lp-section {
        gap: 32px;
        padding-top: 56px;
        padding-bottom: 56px;
    }

    .lp-section__title {
        font-size: 30px;
    }

    .lp-features__body {
        gap: 32px;
    }

    .lp-features__figure {
        flex-basis: 100%;
        padding: 16px;
    }
}

/* ===== Abschnitt: Preisrechner (Task 7) ===== */
.lp-pricing {
    background: var(--lp-ink-strong);
    color: var(--lp-white);
}

.lp-pricing__inner {
    display: flex;
    flex-wrap: wrap;
    gap: 48px;
    align-items: center;
    padding-top: 96px;
    padding-bottom: 96px;
}

.lp-pricing__copy {
    flex: 1 1 420px;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.lp-pricing .lp-section__title {
    color: var(--lp-white);
}

.lp-pricing__lead {
    margin: 0;
    font-size: 18px;
    line-height: 1.6;
    color: #D3DEEE;
}

.lp-calc {
    flex: 1 1 460px;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 18px;
    padding: 32px;
    background: var(--lp-white);
    color: var(--lp-ink);
    border-radius: 24px;
}

.lp-calc__example {
    align-self: flex-start;
    margin: 0;
    padding: 4px 12px;
    border-radius: 999px;
    background: var(--lp-blue-tint);
    color: var(--lp-navy);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.lp-calc__group {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.lp-calc__group--winter {
    padding-top: 18px;
    border-top: 1px solid var(--lp-border);
}

.lp-calc__group-title {
    margin: 0;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.lp-calc__group-title--summer {
    color: var(--lp-green);
}

.lp-calc__group-title--winter {
    color: var(--lp-navy);
}

.lp-calc__row {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
}

.lp-calc__label {
    font-size: 17px;
    font-weight: 700;
}

.lp-calc__label-block {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.lp-calc__hint {
    font-size: 13px;
    color: var(--lp-muted);
}

.lp-calc__stepper {
    display: flex;
    align-items: center;
    gap: 12px;
}

.lp-calc__value {
    min-width: 40px;
    text-align: center;
    font-size: 24px;
    font-weight: 800;
}

.lp-calc__value--derived {
    color: var(--lp-text);
}

.lp-calc__step {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1.5px solid var(--lp-border-strong);
    border-radius: 12px;
    background: var(--lp-white);
    color: var(--lp-ink-strong);
    font: inherit;
    font-size: 22px;
    font-weight: 700;
    cursor: pointer;
}

.lp-calc__step[hidden] {
    display: none;
}

.lp-calc__step:hover {
    background: var(--lp-bg-soft);
}

.lp-calc__step[aria-disabled="true"] {
    opacity: 0.4;
    cursor: not-allowed;
}

.lp-calc__result {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-end;
    gap: 12px;
    padding-top: 20px;
    border-top: 1px solid var(--lp-border);
}

.lp-calc__total-block {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.lp-calc__total-label {
    font-size: 14px;
    font-weight: 600;
    color: var(--lp-muted);
}

.lp-calc__total {
    font-size: 48px;
    line-height: 1;
    font-weight: 800;
    letter-spacing: -0.03em;
    color: var(--lp-ink-strong);
}

.lp-calc__lines {
    display: flex;
    flex-direction: column;
    gap: 2px;
    font-size: 14px;
    color: var(--lp-muted);
    text-align: right;
}

.lp-calc__cta {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: 0 16px;
    border-radius: 12px;
    background: var(--lp-green);
    color: var(--lp-white);
    font-weight: 700;
    font-size: 16px;
    text-align: center;
    text-decoration: none;
}

.lp-calc__cta:hover {
    background: #196332;
    color: var(--lp-white);
}

@media (max-width: 760px) {
    .lp-pricing__inner {
        gap: 32px;
        padding-top: 56px;
        padding-bottom: 56px;
    }

    .lp-calc {
        flex-basis: 100%;
        padding: 20px;
    }

    .lp-calc__total {
        font-size: 40px;
    }

    .lp-calc__lines {
        text-align: left;
    }
}

/* ===== Abschnitte: Stimmen, FAQ, Abschluss-CTA (Task 8) ===== */
.lp-testimonials {
    background: var(--lp-white);
}

.lp-testimonials .lp-section {
    gap: 40px;
}

.lp-testimonials__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 24px;
}

.lp-testimonials__item {
    margin: 0;
    padding: 28px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 20px;
    background: var(--lp-bg-soft);
    border-radius: 20px;
}

.lp-testimonials__quote {
    margin: 0;
    font-size: 18px;
    line-height: 1.55;
    font-weight: 500;
    color: var(--lp-ink);
}

.lp-testimonials__caption {
    font-size: 15px;
    color: var(--lp-muted);
}

.lp-testimonials__caption strong {
    color: var(--lp-ink-strong);
}

.lp-faq {
    background: var(--lp-bg-soft);
}

.lp-faq__inner {
    max-width: 820px;
    margin: 0 auto;
    padding-left: 24px;
    padding-right: 24px;
    gap: 28px;
}

.lp-faq__list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.lp-faq__item {
    background: var(--lp-white);
    border-radius: 16px;
}

.lp-faq__question {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    min-height: 64px;
    padding: 16px 24px;
    border-radius: 16px;
    font-size: 17px;
    font-weight: 700;
    color: var(--lp-ink);
    cursor: pointer;
    list-style: none;
}

.lp-faq__question::-webkit-details-marker {
    display: none;
}

.lp-faq__question::after {
    content: "+";
    flex: none;
    font-size: 22px;
    color: var(--lp-navy);
}

.lp-faq__item[open] > .lp-faq__question::after {
    content: "−";
}

.lp-faq__answer {
    margin: 0;
    padding: 0 24px 22px;
    font-size: 16px;
    line-height: 1.6;
    color: var(--lp-text);
}

.lp-closing {
    background: var(--lp-ink-strong);
    color: var(--lp-white);
}

.lp-closing__inner {
    display: flex;
    flex-wrap: wrap;
    gap: 32px;
    align-items: center;
    justify-content: space-between;
    padding-top: 88px;
    padding-bottom: 88px;
}

.lp-closing__copy {
    flex: 1 1 520px;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.lp-closing__title {
    margin: 0;
    font-size: 40px;
    line-height: 1.15;
    font-weight: 800;
    letter-spacing: -0.02em;
}

.lp-closing__lead {
    margin: 0;
    font-size: 18px;
    line-height: 1.6;
    color: #C9D6EA;
}

.lp-closing__buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.lp-closing__primary {
    background: var(--lp-green);
    color: var(--lp-white);
}

.lp-closing__primary:hover {
    background: #196332;
    color: var(--lp-white);
}

.lp-closing__secondary {
    border-color: #6F86A8;
    color: var(--lp-white);
}

.lp-closing__secondary:hover {
    background: var(--lp-navy-dark);
    color: var(--lp-white);
}

@media (max-width: 760px) {
    .lp-faq__inner {
        padding-left: 16px;
        padding-right: 16px;
    }

    .lp-faq__question {
        padding: 14px 18px;
    }

    .lp-faq__answer {
        padding: 0 18px 18px;
    }

    .lp-closing__inner {
        padding-top: 56px;
        padding-bottom: 56px;
    }

    .lp-closing__title {
        font-size: 30px;
    }

    .lp-closing__buttons .lp-btn {
        flex: 1 1 100%;
    }
}

/* ===== Seite: Testzugang anfragen (Task 11) ===== */
.lp-request {
    background: var(--lp-bg-soft);
}

.lp-request__inner {
    max-width: 680px;
    padding-top: 56px;
    padding-bottom: 72px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.lp-request__title {
    margin: 0;
    font-size: 40px;
    line-height: 1.1;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--lp-ink-strong);
}

.lp-request__intro {
    margin: 0;
    font-size: 17px;
    line-height: 1.6;
    color: var(--lp-text);
}

.lp-request__form {
    display: flex;
    flex-direction: column;
    gap: 18px;
    margin: 0;
    padding: 28px;
    background: var(--lp-white);
    border: 1px solid var(--lp-border);
    border-radius: 20px;
    box-shadow: 0 24px 48px -24px rgba(11, 37, 71, 0.2);
}

.lp-field__hint {
    font-size: 14px;
    line-height: 1.5;
    color: var(--lp-muted);
}

.lp-field__error,
.lp-request .validation-message {
    font-size: 14px;
    font-weight: 600;
    color: var(--lp-error);
}

.lp-request__form .lp-field input.invalid {
    border-color: var(--lp-error);
}

.lp-request__privacy {
    margin: 0;
    font-size: 14px;
    line-height: 1.5;
    color: var(--lp-muted);
}

.lp-request__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 20px;
}

.lp-request__actions .lp-btn {
    cursor: pointer;
}

.lp-request__cancel,
.lp-request__back a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    font-size: 15px;
    font-weight: 600;
}

.lp-request__back {
    margin: 0;
}

.lp-request__panel {
    padding: 18px 22px;
    border-radius: 14px;
    border: 1.5px solid transparent;
}

.lp-request__panel--success {
    background: var(--lp-green-tint);
    border-color: var(--lp-green);
}

.lp-request__panel--error {
    background: var(--lp-error-tint);
    border-color: var(--lp-error);
}

.lp-request__panel-title {
    margin: 0 0 4px;
    font-size: 20px;
    font-weight: 800;
    color: var(--lp-ink-strong);
}

.lp-request__panel-text {
    margin: 0;
    font-size: 16px;
    line-height: 1.5;
    color: var(--lp-ink);
}

@media (max-width: 760px) {
    .lp-request__inner {
        padding-top: 36px;
        padding-bottom: 48px;
    }

    .lp-request__title {
        font-size: 32px;
    }

    .lp-request__form {
        padding: 20px 16px;
    }

    .lp-request__actions .lp-btn {
        flex: 1 1 100%;
    }
}

/* ===== Seite: Anmelden (/Account/Login, Nachtrag #871) ===== */
.lp-account {
    background: var(--lp-bg-soft);
}

.lp-account__inner {
    padding-top: 56px;
    padding-bottom: 72px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
}

.lp-login--page {
    flex: 0 1 auto;
    width: 100%;
}

.lp-account__more {
    margin: 0;
    font-size: 15px;
    line-height: 1.5;
    color: var(--lp-muted);
    text-align: center;
}

.lp-account .validation-message {
    font-size: 14px;
    font-weight: 600;
    color: var(--lp-error);
}

.lp-account .lp-field input.invalid {
    border-color: var(--lp-error);
}

/* StatusMessage (Fehler-/Erfolgsmeldung der Login-Seite) ohne Bootstrap */
.lp-account .alert {
    margin: 0;
    padding: 14px 18px;
    border: 1.5px solid transparent;
    border-radius: 12px;
    font-size: 15px;
    line-height: 1.5;
}

.lp-account .alert-danger {
    background: var(--lp-error-tint);
    border-color: var(--lp-error);
    color: var(--lp-ink);
}

.lp-account .alert-success {
    background: var(--lp-green-tint);
    border-color: var(--lp-green);
    color: var(--lp-ink);
}

@media (max-width: 760px) {
    .lp-account__inner {
        padding-top: 32px;
        padding-bottom: 48px;
    }

    .lp-login--page {
        padding: 24px;
    }
}

/* ===== Konto-Seiten im AccountLayout (Nachtrag #871) =====
   Die Seiten behalten ihr Bootstrap-Markup; diese Regeln stellen die verwendeten Klassen innerhalb der Karte
   im Stil der Einstiegsseite dar (Bootstrap selbst wird auf diesen Seiten nicht mehr geladen). */
.lp-account__card {
    width: 100%;
    max-width: 880px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 32px;
    background: var(--lp-white);
    border: 1px solid var(--lp-border);
    border-radius: 20px;
    box-shadow: 0 24px 48px -24px rgba(11, 37, 71, 0.28);
    font-size: 16px;
    line-height: 1.6;
    color: var(--lp-text);
}

.lp-account__card h1,
.lp-account__card h2,
.lp-account__card h3,
.lp-account__card h4,
.lp-account__card h5 {
    margin: 0 0 8px;
    line-height: 1.25;
    font-weight: 800;
    color: var(--lp-ink-strong);
}

.lp-account__card h1 { font-size: 32px; }
.lp-account__card h2 { font-size: 26px; }
.lp-account__card h3 { font-size: 21px; }
.lp-account__card h4,
.lp-account__card h5 { font-size: 18px; }

.lp-account__card p,
.lp-account__card ul {
    margin: 0 0 12px;
}

.lp-account__card hr {
    margin: 12px 0;
    border: 0;
    border-top: 1px solid var(--lp-border);
}

.lp-account__card .row {
    display: flex;
    flex-wrap: wrap;
    gap: 32px;
}

.lp-account__card .col-lg-6,
.lp-account__card .col-md-4,
.lp-account__card .col-md-6,
.lp-account__card .col-md-8 {
    flex: 1 1 320px;
    min-width: 0;
}

.lp-account__card .mb-3 { margin-bottom: 16px; }
.lp-account__card .mr-2 { margin-right: 8px; }
.lp-account__card .w-100 { width: 100%; }
.lp-account__card .d-flex { display: flex; }
.lp-account__card .align-items-center { align-items: center; }
.lp-account__card .d-none { display: none; }
.lp-account__card .invisible { visibility: hidden; }

.lp-account__card .form-floating,
.lp-account__card .form-group {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.lp-account__card .form-label,
.lp-account__card label {
    font-size: 14px;
    font-weight: 700;
    color: var(--lp-ink);
}

.lp-account__card .form-control {
    box-sizing: border-box;
    min-height: 48px;
    width: 100%;
    border: 1.5px solid var(--lp-border-strong);
    border-radius: 10px;
    padding: 0 14px;
    font: inherit;
    font-size: 16px;
    color: var(--lp-ink);
    background: var(--lp-white);
}

.lp-account__card .form-control:disabled {
    background: var(--lp-bg-soft);
    color: var(--lp-muted);
}

.lp-account__card .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0 20px;
    border: 0;
    border-radius: 12px;
    font: inherit;
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
}

.lp-account__card .btn-primary {
    background: var(--lp-navy);
    color: var(--lp-white);
}

.lp-account__card .btn-primary:hover {
    background: var(--lp-navy-dark);
}

.lp-account__card .btn:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.lp-account__card .btn-lg {
    min-height: 52px;
}

.lp-account__card .text-danger,
.lp-account__card .validation-message {
    font-size: 14px;
    font-weight: 600;
    color: var(--lp-error);
}

.lp-account__card .validation-errors {
    margin: 0;
    padding-left: 20px;
}

.lp-account__card .form-control.invalid {
    border-color: var(--lp-error);
}

.lp-account__card .alert {
    margin: 0;
    padding: 14px 18px;
    border: 1.5px solid transparent;
    border-radius: 12px;
    font-size: 15px;
    line-height: 1.5;
}

.lp-account__card .alert-danger {
    background: var(--lp-error-tint);
    border-color: var(--lp-error);
    color: var(--lp-ink);
}

.lp-account__card .alert-success {
    background: var(--lp-green-tint);
    border-color: var(--lp-green);
    color: var(--lp-ink);
}

.lp-account__card .alert-info {
    background: var(--lp-blue-tint);
    border-color: var(--lp-navy);
    color: var(--lp-ink);
}

.lp-account__card .lp-account__more {
    text-align: left;
}

@media (max-width: 760px) {
    .lp-account__card {
        padding: 22px;
    }

    .lp-account__card h1 { font-size: 26px; }
    .lp-account__card h2 { font-size: 22px; }
}