body.legal-page{zoom:1;background:#fff;color:#222}
.legal-header{border-bottom:1px solid #e5e5df;background:#fff}
.legal-header-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:96px}
.legal-logo{display:block;width:250px;height:52px;overflow:hidden;position:relative}
.legal-logo img{position:absolute;width:100%;height:auto;top:50%;transform:translateY(-50%);object-fit:contain}
.legal-home-link{font-size:14px;white-space:nowrap}
.legal-home-link:hover{color:#9d8322}
.legal-main{width:min(820px,calc(100% - 48px));margin:0 auto;padding:72px 0 88px}
.legal-heading{margin-bottom:42px}
.legal-heading .eyebrow{margin-bottom:16px}
.legal-heading h1{font-size:clamp(36px,calc(var(--vw) * 5),58px);font-weight:450;line-height:1.15;letter-spacing:-.04em;overflow-wrap:anywhere}
:root[data-theme] body.legal-page .legal-content h2{font-size:25px!important;font-weight:550!important;line-height:1.35;letter-spacing:-.025em;margin:0 0 18px}
.legal-content h3{font-size:20px;line-height:1.4;letter-spacing:-.015em;margin:30px 0 12px;font-weight:550}
.legal-content h4{font-size:17px;line-height:1.5;margin:22px 0 10px;font-weight:600}
.legal-content p,.legal-content address,.legal-content li{font-size:16px;line-height:1.8;overflow-wrap:anywhere;hyphens:auto}
.legal-content p,.legal-content address{margin:0 0 16px;font-style:normal}
.legal-content section{margin:0 0 40px;padding:0;scroll-margin-top:24px}
.legal-content ul{padding-left:24px;margin:16px 0 24px}
.legal-content li{margin:8px 0}
.legal-content a{text-decoration:underline;text-underline-offset:3px;color:#746018}
.legal-toc{display:grid;gap:12px;padding:25px 0;margin:0 0 42px;border-block:1px solid #e5e5df}
.legal-toc a{font-size:15px;line-height:1.5;color:#746018}
.legal-page-links{display:flex;flex-wrap:wrap;gap:24px;padding-top:24px;border-top:1px solid #e5e5df;font-size:15px}
.legal-page-links a:hover,.legal-toc a:hover{text-decoration:underline;text-underline-offset:3px}
.legal-page .site-footer{padding-top:0}
.legal-page .footer-columns>*{min-width:0}
.legal-page .footer-columns a{overflow-wrap:anywhere}
@media(max-width:600px){.legal-header-inner{min-height:80px;gap:16px}.legal-logo{width:190px;height:44px}.legal-home-link{font-size:13px}.legal-main{width:calc(100% - 40px);padding:44px 0 60px}.legal-heading{margin-bottom:30px}:root[data-theme] body.legal-page .legal-content h2{font-size:22px!important}.legal-content h3{font-size:19px}.legal-page .footer-columns{gap:28px 20px}}
@media(max-width:380px){.legal-header-inner{gap:10px}.legal-logo{width:160px}.legal-home-link{font-size:12px}}

/* Partnerseite: je Kategorie Eyebrow + Titel links, darunter Logo-Raster. */
.partner-main { width: min(1180px, calc(100% - 48px)); margin: 0 auto; padding: 72px 0 96px; }
.partner-intro { max-width: 640px; margin: 22px 0 0; font-size: 17px; line-height: 1.7; color: #5d666c; }
.partner-gruppe { margin-top: 76px; }
.partner-gruppe .eyebrow { margin-bottom: 12px; }
:root[data-theme] body.partner-page .partner-gruppe h2 { font-size: clamp(26px, calc(var(--vw) * 3), 36px) !important; font-weight: 450 !important; line-height: 1.2; letter-spacing: -.03em; margin: 0 0 28px; }
.partner-raster { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none;
  border: 1px solid #e3e7ea; border-radius: 18px; overflow: hidden; background: #fff; }
.partner-raster li { display: flex; align-items: center; justify-content: center; height: 150px; padding: 26px 30px;
  margin: 0 -1px -1px 0; border-right: 1px solid #e3e7ea; border-bottom: 1px solid #e3e7ea; }
.partner-raster img { display: block; max-height: 46px; max-width: 100%; width: auto; height: auto; object-fit: contain; }
.partner-raster .partner-text { font-size: 19px; font-weight: 600; letter-spacing: .02em; color: #5d666c; text-align: center; }
.partner-cta { margin-top: 72px; }
@media (max-width: 900px) { .partner-raster { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 600px) {
  .partner-main { padding: 48px 0 70px; }
  .partner-gruppe { margin-top: 56px; }
  .partner-raster { grid-template-columns: repeat(2, minmax(0, 1fr)); border-radius: 14px; }
  .partner-raster li { height: 110px; padding: 18px; }
  .partner-raster img { max-height: 34px; }
}

/* Partnerseite: Hero in halber Hoehe mit Eyebrow und Titel. */
.partner-hero { position: relative; height: 50svh; min-height: 340px; max-height: 560px; overflow: hidden; background: #1b2328; }
.partner-hero img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 60% 50%; }
.partner-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10, 20, 26, .45) 0%, rgba(10, 20, 26, .08) 35%, rgba(10, 20, 26, .55) 100%), linear-gradient(90deg, rgba(10, 20, 26, .5) 0%, rgba(10, 20, 26, 0) 60%); }
.partner-hero-text { position: absolute; z-index: 1; left: 0; right: 0; bottom: 64px; width: min(1180px, calc(100% - 48px)); margin: 0 auto; color: #fff; }
.partner-hero-text .eyebrow { margin: 0 0 16px; color: #d4b85a; }
.partner-hero-text h1 { margin: 0; color: #fff; font-size: clamp(38px, calc(var(--vw) * 5), 64px); font-weight: 450; line-height: 1.1; letter-spacing: -.04em; }
.partner-main { padding-top: 56px; }
.partner-kopf .partner-intro { margin-top: 0; }
@media (max-width: 600px) {
  .partner-hero { height: 44svh; min-height: 280px; }
  .partner-hero-text { bottom: 36px; }
  .partner-main { padding-top: 40px; }
}

/* Partnerseite nutzt den Startseiten-Header im Hero (.hero .site-header). */
body.partner-page .hero.partner-hero { display: block; min-height: 0; height: 52svh; min-height: 380px; max-height: 600px; padding: 0; gap: 0; }
body.partner-page .hero.partner-hero > img { z-index: 0; }
body.partner-page .hero.partner-hero::after { z-index: 1; }
body.partner-page .partner-hero .site-header { z-index: 60; }
body.partner-page .partner-hero-text { z-index: 2; }
@media (max-width: 600px) { body.partner-page .hero.partner-hero { height: 46svh; min-height: 330px; } }
.partner-kopf { display: flex; align-items: center; justify-content: space-between; gap: 40px; }
.partner-kopf-button { flex-shrink: 0; }
@media (max-width: 820px) { .partner-kopf { flex-direction: column; align-items: flex-start; gap: 26px; } }

/* Partnerseite: Kontaktbereich am Ende (Text links, Formular rechts). */
.partner-kontakt { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 80px; align-items: start; margin-top: 120px; padding-top: 96px; border-top: 1px solid #e3e7ea; }
.partner-kontakt-text .eyebrow { margin-bottom: 26px; }
:root[data-theme] body.partner-page .partner-kontakt h2 { font-size: clamp(38px, calc(var(--vw) * 4.4), 62px) !important; font-weight: 450 !important; line-height: 1.12 !important; letter-spacing: -.04em; margin: 0; }
.partner-kontakt h2 span { color: #9d8322; }
.partner-kontakt-text > p:last-child { margin: 34px 0 0; font-size: 18px; line-height: 1.75; color: #2a3236; }
.partner-formular-felder { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 34px 28px; }
.partner-formular-felder label { display: block; font-size: 15px; color: #2a3236; }
.partner-formular-felder input, .partner-formular-felder textarea { display: block; width: 100%; margin-top: 12px; padding: 12px 0; border: 0; border-bottom: 1px solid #d5dbdf; border-radius: 0; background: transparent; font: inherit; font-size: 16px; color: #222; }
.partner-formular-felder textarea { min-height: 120px; resize: vertical; }
.partner-formular-felder input:focus, .partner-formular-felder textarea:focus { outline: none; border-bottom-color: #9d8322; }
.partner-formular-nachricht { grid-column: 1 / -1; }
.partner-formular-hinweis { margin: 18px 0 0; font-size: 13px; line-height: 1.6; color: #69747a; }
.partner-formular-hinweis a { color: #9d8322; text-decoration: underline; text-underline-offset: 3px; }
.partner-formular .button { margin-top: 24px; }
.partner-formular-status { margin: 14px 0 0; font-size: 14px; color: #2a3236; }
.partner-formular .hp-field { position: absolute; left: -9999px; }
@media (max-width: 860px) {
  .partner-kontakt { grid-template-columns: 1fr; gap: 44px; margin-top: 80px; padding-top: 64px; }
}
@media (max-width: 600px) { .partner-formular-felder { grid-template-columns: 1fr; gap: 26px; } }
@media (min-width: 1100px) {
  .partner-kontakt { grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); }
  .partner-kontakt h2 { white-space: nowrap; }
  :root[data-theme] body.partner-page .partner-kontakt h2 { font-size: clamp(40px, calc(var(--vw) * 4), 58px) !important; }
}

/* Partnerseite: FAQ, CTA-Band (wie im Startseiten-Footer) und Kontakt. */
.partner-faq { padding: 120px 0 40px; }
.partner-page .partner-faq h2 span, .partner-page .partner-cta-band .footer-offer-copy h2 span { color: #9d8322; }
.partner-cta-band { border-bottom: 0; padding-bottom: 90px; }
.partner-kontakt-wrap { padding-top: 0; }
.partner-kontakt-wrap .partner-kontakt { margin-top: 0; border-top: 0; }
@media (max-width: 860px) { .partner-faq { padding: 80px 0 20px; } }
.partner-cta-band { background: #f8f6f0; border-top: 1px solid #dedbd2; padding-top: 90px; }
@media (max-width: 700px) { .partner-cta-band { padding-top: 60px; padding-bottom: 60px; } }
/* CTA-Band ueber der FAQ: oben und unten gleicher Abstand, Abstand zum Raster davor. */
body.partner-page .partner-cta-band { margin-top: 110px; padding: 90px 0; border-bottom: 1px solid #dedbd2; }
.partner-faq-wrap { padding-top: 0; }
.partner-faq-wrap .partner-faq { padding-top: 110px; }
@media (max-width: 700px) { body.partner-page .partner-cta-band { margin-top: 70px; padding: 60px 0; } .partner-faq-wrap .partner-faq { padding-top: 70px; } }
body.partner-page .partner-cta-band { margin-top: 0; }
body.partner-page .partner-cta-band .footer-offer { margin-bottom: 0; }
@media (max-width: 700px) { body.partner-page .partner-cta-band { padding: 0 !important; } body.partner-page .partner-cta-band .footer-offer { margin-bottom: 0 !important; } }
