:root {
    --background: #fbfcff;
    --foreground: #111d39;
    --card: #ffffff;
    --card-foreground: #111827;
    --primary: #1747a6;
    --primary-hover: #0d327d;
    --primary-foreground: #ffffff;
    --secondary: #edf3ff;
    --muted: #f2f5fb;
    --muted-foreground: #5d6679;
    --accent: #e51a22;
    --success: #238a3f;
    --border: #d7dfef;
    --ring: rgba(23, 71, 166, 0.25);
    --shadow-sm: 0 1px 3px rgba(9, 30, 72, 0.08);
    --shadow-md: 0 12px 34px rgba(9, 30, 72, 0.12);
}

body {
    color: #111d39;
    background: #fbfcff;
}

.site-header,
.form-header {
    border-bottom-color: #dce3f0;
    background: rgba(255, 255, 255, 0.97);
    box-shadow: 0 5px 22px rgba(7, 25, 62, 0.07);
}

.form-header::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: -1px;
    left: 0;
    height: 3px;
    background: linear-gradient(90deg, #e20c18 0%, #ff7a00 24%, #f1d500 42%, #21a447 61%, #078ad7 80%, #163b91 100%);
}

.phone-link strong,
.form-header-help a,
.aside-help a {
    color: #102d68;
}

.icon-circle,
.form-header-help > span,
.aside-help > span {
    border-color: #cdd8ed;
    color: #1747a6;
    background: #eff4ff;
}

.main-nav {
    border-top-color: #e8edf6;
    color: #344361;
    background: rgba(250, 252, 255, 0.96);
}

.nav-links a:hover {
    color: #123d92;
    background: #eaf1ff;
}

.mobile-nav {
    background: linear-gradient(135deg, #071b46, #1747a6);
}

.button-primary {
    background: linear-gradient(135deg, #1c55bd, #123a8c);
    box-shadow: 0 6px 16px rgba(20, 61, 143, 0.24);
}

.button-primary:hover {
    background: linear-gradient(135deg, #1747a6, #0a2a68);
}

.button-outline {
    border-color: #b9c8e2;
    color: #173b7e;
    background: #f8faff;
}

.button-outline:hover {
    border-color: #7897cc;
    color: #0d327d;
    background: #edf3ff;
}

.site-footer,
.form-footer {
    color: #d8e4fb;
    background: #071630;
}

.site-footer {
    position: relative;
}

.site-footer::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 4px;
    background: linear-gradient(90deg, #e20c18 0%, #ff7a00 24%, #f1d500 42%, #21a447 61%, #078ad7 80%, #163b91 100%);
}

.footer-grid nav a,
.footer-bottom,
.footer-bottom a {
    color: #d8e4fb;
}

/* Anfrage- sowie Danke- und Fehlerseiten */
.questionnaire-page,
.result-page {
    background: #f3f6fc;
}

.wizard-card,
.aside-card,
.result-card {
    border-color: #d5deee;
    box-shadow: 0 18px 50px rgba(11, 38, 91, 0.09);
}

.wizard-heading h1,
.step-heading h2,
.aside-card h2,
.request-summary h3,
.summary-grid strong,
.result-card h1,
.result-steps strong {
    color: #111f40;
}

.wizard-heading > p:last-child,
.step-heading p,
.progress-copy,
.summary-grid p,
.result-card > p:not(.eyebrow),
.result-steps small {
    color: #5d687c;
}

.back-home,
.secure-note {
    color: #53617a;
}

.back-home:hover,
.progress-copy strong,
.progress-copy span:last-child,
.aside-kicker,
.privacy-details a,
.consent-row a,
.secure-note span {
    color: #1747a6;
}

.progress-track {
    background: #e4e9f2;
}

.progress-track span {
    background: linear-gradient(90deg, #1747a6 0%, #087dca 65%, #21a447 100%);
}

.step-kicker,
.result-steps p > span {
    color: #123c8d;
    background: #e4edff;
}

.form-field > label,
.choice-fieldset > legend,
.choice-card strong,
.privacy-details summary {
    color: #293a5b;
}

.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus {
    border-color: #1747a6;
    box-shadow: 0 0 0 3px rgba(23, 71, 166, 0.16);
}

.choice-card {
    border-color: #d8e0ee;
}

.choice-card:hover {
    border-color: #8ca9dc;
    background: #f7f9ff;
}

.choice-card.is-selected {
    border-color: #1747a6;
    background: #edf3ff;
    box-shadow: 0 0 0 2px rgba(23, 71, 166, 0.13);
}

.choice-card input,
.consent-row input,
.partner-consent input {
    accent-color: #1747a6;
}

.request-summary,
.privacy-details,
.conditional-field,
.result-steps p {
    border-color: #d6dfed;
    background: #f7f9fe;
}

.aside-card li > span,
.result-icon {
    background: #1747a6;
}

.aside-help > span {
    color: #1747a6;
    background: #e4edff;
}

.wizard-actions {
    border-top-color: #dde4ef;
}

.form-footer a:hover {
    color: #ffffff;
}

@media (max-width: 740px) {
    .wizard-actions {
        border-top-color: #d7dfed;
        box-shadow: 0 -10px 30px rgba(9, 30, 72, 0.13);
    }
}

/* Unternehmensseite */
.business-hero {
    position: relative;
    background:
        radial-gradient(circle at 9% 10%, rgba(7, 138, 215, 0.25), transparent 26%),
        radial-gradient(circle at 90% 12%, rgba(226, 12, 24, 0.16), transparent 28%),
        linear-gradient(135deg, #071b46 0%, #123a8c 58%, #1747a6 100%);
}

.business-hero::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 4px;
    background: linear-gradient(90deg, #e20c18, #ff7a00 25%, #f1d500 43%, #21a447 62%, #078ad7 81%, #163b91);
}

.business-hero-copy .eyebrow,
.business-cta .eyebrow {
    color: #cbdcff;
}

.business-lead,
.business-trust-row {
    color: #dce7fb;
}

.business-benefits small {
    color: #c8d7f1;
}

.business-benefits li > span:first-child {
    color: #123a8c;
    background: #dbe7ff;
}

.business-benefits li:nth-child(2) > span:first-child {
    color: #9f2118;
    background: #ffe5df;
}

.business-benefits li:nth-child(3) > span:first-child {
    color: #17652f;
    background: #dff5e5;
}

.business-trust-row span::before {
    color: #79d58e;
}

.partner-form-card {
    border-color: rgba(255, 255, 255, 0.68);
    box-shadow: 0 28px 70px rgba(4, 20, 56, 0.28);
}

.partner-form-heading h2,
.business-step-card h3,
.business-advantages-copy h2,
.advantage-list h3 {
    color: #111f40;
}

.form-icon,
.business-step-icon {
    background: #1747a6;
}

.business-step-card:nth-child(2) .business-step-icon {
    background: #e14223;
}

.business-step-card:nth-child(3) .business-step-icon {
    background: #238a3f;
}

.partner-field input:focus {
    border-color: #1747a6;
    box-shadow: 0 0 0 3px rgba(23, 71, 166, 0.15);
}

.salutation-options input:checked + span {
    border-color: #1747a6;
    color: #123a8c;
    background: #edf3ff;
    box-shadow: inset 0 0 0 1px #1747a6;
}

.salutation-options input:focus-visible + span {
    outline-color: rgba(23, 71, 166, 0.25);
}

.partner-consent a,
.business-proof strong {
    color: #1747a6;
}

.business-proof {
    border-bottom-color: #dce3ef;
}

.business-proof-grid > div {
    border-right-color: #e1e7f0;
}

.business-step-card {
    border-color: #d8e0ee;
    box-shadow: 0 12px 32px rgba(11, 38, 91, 0.08);
}

.business-step-number {
    color: #d9e3f5;
}

.business-advantages {
    background: #edf3fc;
}

.advantage-list article {
    border-color: #d4dfef;
    background: rgba(255, 255, 255, 0.88);
}

.advantage-list article:nth-child(1) > span {
    color: #e14223;
}

.advantage-list article:nth-child(2) > span {
    color: #1747a6;
}

.advantage-list article:nth-child(3) > span {
    color: #238a3f;
}

.business-faq {
    background: #f7f9fd;
}

.business-cta {
    background: #071630;
}

.business-cta p:last-child {
    color: #cbd8ef;
}

.business-cta .button {
    color: #ffffff;
    background: linear-gradient(135deg, #f05a15, #df2522);
}

.business-cta .button:hover {
    background: linear-gradient(135deg, #df4514, #bd151b);
}

/* Impressum und Datenschutz */
.legal-main {
    background: #f3f6fc;
}

.legal-hero {
    position: relative;
    background:
        radial-gradient(circle at 86% 10%, rgba(226, 12, 24, 0.16), transparent 29%),
        linear-gradient(135deg, #071b46 0%, #1747a6 100%);
}

.legal-hero::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 4px;
    background: linear-gradient(90deg, #e20c18, #ff7a00 25%, #f1d500 43%, #21a447 62%, #078ad7 81%, #163b91);
}

.legal-hero .eyebrow {
    color: #cbdcff;
}

.legal-hero p:last-child {
    color: #dce7fb;
}

.legal-nav,
.legal-card {
    border-color: #d7dfed;
    box-shadow: 0 14px 38px rgba(9, 30, 72, 0.08);
}

.legal-nav strong,
.legal-card h2,
.legal-card h3 {
    color: #111f40;
}

.legal-nav a:hover,
.legal-card a:not(.button) {
    color: #1747a6;
}

.legal-card section + section {
    border-top-color: #e2e7f0;
}

.legal-address {
    border-left-color: #f05a15;
    background: #f7f9fd;
}

.legal-note {
    border-color: #cbd9f0;
    color: #294875;
    background: #edf3ff;
}

@media (max-width: 800px) {
    .legal-nav a {
        color: #31466c;
        background: #edf2fa;
    }
}
