/* Shared subpage components. Reuse home-v2 typography, containers and buttons.
   Scoped rules leave the homepage, team cards and valuation widget untouched. */
.subpage-v2, .subpage-contact {
  --sub-ink: #29272a;
  --sub-muted: #625d59;
  --sub-surface: #f8f6f4;
  --sub-line: #e3ddd7;
  --sub-radius: 16px;
  --sub-orange: var(--colororangeww, #e95a22);
}
.subpage-v2 { overflow-wrap: anywhere; }
.subpage-v2 .sub-hero { padding-block: 76px 64px; background: var(--sub-surface); border-bottom: 1px solid var(--sub-line); }
.subpage-v2 .sub-hero h1 { max-width: 1100px; font-size: clamp(38px, 5vw, 70px); hyphens: auto; }
.subpage-v2 .sub-lead { max-width: 780px; font-size: clamp(20px, 2.2vw, 28px); line-height: 1.45; margin-top: 28px; color: var(--sub-muted); }
.sub-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 340px); gap: clamp(40px, 6vw, 90px); padding-block: 76px; align-items: start; }
.sub-layout > *, .sub-privacy-layout > * { min-width: 0; }
.sub-content-block + .sub-content-block { margin-top: 48px; padding-top: 40px; border-top: 1px solid var(--sub-line); }
.subpage-v2 .sub-content-block h2 { display: flex; gap: 14px; align-items: baseline; font-size: clamp(25px, 2.5vw, 34px); line-height: 1.22; letter-spacing: -.025em; margin-bottom: 24px; }
.sub-icon { flex: 0 0 20px; width: 20px; height: 20px; color: var(--sub-orange); }
.subpage-v2 .sub-content-block p { margin-bottom: 22px; color: var(--sub-muted); }
.subpage-v2 .sub-content-block p:last-child { margin-bottom: 0; }
.sub-article a:not(.home-button):not(.home-button-secondary), .sub-legal-copy a:not(.home-button), .sub-legal-card a:not(.home-button) { color: #b04318 !important; text-decoration: underline !important; text-underline-offset: 4px; }
.subpage-v2 .sub-feature { display: flex; gap: 14px; align-items: baseline; border: 1px solid var(--sub-line); border-radius: var(--sub-radius); padding: 22px; background: #fff; }
.sub-feature strong { color: var(--sub-ink); }
.sub-advice { border: 1px solid var(--sub-line); border-radius: var(--sub-radius); padding: 28px; background: var(--sub-surface); box-shadow: 0 4px 16px #29272a05; }
.sub-advice > img { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; margin-bottom: 24px; background: #fff; border: 1px solid var(--sub-line); }
.subpage-v2 .sub-advice h2, .subpage-v2 .sub-service-links h2 { font-size: 24px; line-height: 1.25; letter-spacing: -.02em; margin-bottom: 18px; }
.subpage-v2 .sub-advice p { font-size: 14px; line-height: 1.75; color: var(--sub-muted); margin-bottom: 24px; }
.sub-advice .home-button { width: 100%; gap: 12px; }
.sub-service-links { margin-top: 36px; }
.sub-service-links a { display: flex; justify-content: space-between; gap: 16px; padding-block: 14px; border-bottom: 1px solid var(--sub-line); font-size: 14px; }
.sub-service-links a span, .sub-service-links a[aria-current] { color: #b04318; }
.sub-service-links a:hover { color: #b04318; border-color: var(--sub-orange); }
.sub-cta { display: grid; grid-template-columns: 1fr 1fr; background: var(--sub-surface); border: 1px solid var(--sub-line); border-radius: 20px; overflow: hidden; margin-bottom: 88px; }
.sub-cta > img { width: 100%; height: 100%; object-fit: cover; min-height: 340px; }
.sub-cta > div { padding: clamp(28px, 4vw, 56px); }
.subpage-v2 .sub-cta h2 { font-size: clamp(28px, 3vw, 40px); margin-bottom: 24px; }
.sub-cta p:not(.home-eyebrow) { color: var(--sub-muted); }
.subpage-v2 .sub-button-secondary { background: transparent; color: var(--sub-ink); border-color: var(--sub-line); }
.subpage-v2 .sub-button-secondary:hover { background: #fff; color: #b04318; border-color: var(--sub-orange); }
.sub-offers { padding-block: 76px 88px; display: grid; grid-template-columns: 1.2fr 1fr; gap: 32px; align-items: start; }
.sub-offer-card, .sub-offer-contact { padding: clamp(28px, 4vw, 52px); border-radius: 20px; border: 1px solid var(--sub-line); }
.sub-offer-card { background: var(--sub-surface); }
.subpage-v2 .sub-offers h2 { font-size: clamp(28px, 3vw, 40px); margin-bottom: 24px; }
.subpage-v2 .sub-note { margin-top: 18px; font-size: 13px; color: var(--sub-muted); }
.sub-legal-body { padding-block: 64px 88px; }
.sub-legal-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr); gap: 32px; align-items: start; }
.sub-legal-card { min-width: 0; border: 1px solid var(--sub-line); border-radius: var(--sub-radius); padding: clamp(24px, 3vw, 40px); }
.sub-legal-card p { font-size: 16px; line-height: 1.8; }
.sub-legal-card .text-size-large { font-size: 22px; line-height: 1.35; }
.sub-privacy-layout { display: grid; grid-template-columns: 270px minmax(0, 1fr); gap: clamp(36px, 6vw, 88px); padding-block: 64px 88px; align-items: start; }
.sub-toc { background: var(--sub-surface); border: 1px solid var(--sub-line); border-radius: var(--sub-radius); padding: 24px; }
.subpage-v2 .sub-toc h2 { font-size: 22px; letter-spacing: -.02em; margin-bottom: 16px; }
.sub-toc a { display: block; padding-block: 10px; border-bottom: 1px solid var(--sub-line); font-size: 13px; line-height: 1.5; }
.sub-toc a:hover { color: #b04318; }
.sub-legal-copy { max-width: 800px; }
.subpage-v2 .sub-legal-copy h2 { font-size: 28px; line-height: 1.25; margin: 44px 0 20px; scroll-margin-top: 120px; letter-spacing: -.02em; }
.subpage-v2 .sub-legal-copy h4 { font-size: 20px; line-height: 1.4; margin: 28px 0 16px; }
.subpage-v2 .sub-legal-copy p, .subpage-v2 .sub-legal-copy ul { margin-bottom: 20px; line-height: 1.8; }
.sub-legal-copy .w-richtext > h2:first-of-type { margin-top: 0; }
.sub-legal-copy .image-13 { width: 100px; height: auto; margin: 32px 0; }
.sub-legal-copy #datenschutzbeauftragter { border-top: 1px solid var(--sub-line); scroll-margin-top: 110px; }
.sub-legal-copy #datenschutzbeauftragter strong { padding: 0; }
/* The existing contact form, its scripts and external embed hooks remain intact. */
.subpage-contact .kontakt-container { width: 88%; max-width: 1280px; }
.subpage-contact .kontakt-hero { padding-top: 76px; background: var(--sub-surface); border-top: 0; }
.subpage-contact .kontakt-hero h1 { font-size: clamp(38px, 5vw, 70px); line-height: 1.04; letter-spacing: -.045em; }
.subpage-contact .kontakt-eyebrow { display: flex; align-items: center; gap: 14px; font-size: 11px; line-height: 1.5; letter-spacing: .14em; font-weight: 400; color: var(--sub-ink); margin-bottom: 24px; }
.subpage-contact .kontakt-eyebrow::before { content: ''; width: 32px; height: 1px; background: var(--sub-orange); flex-shrink: 0; }
.subpage-contact .kontakt-trust { margin-top: 40px; padding-block: 28px; }
.subpage-contact .kontakt-trust-mark { color: var(--sub-orange); font-size: 20px; }
.subpage-contact .kontakt-layout { padding-block: 72px; }
.subpage-contact .kontakt-card, .subpage-contact .kontakt-person, .subpage-contact .kontakt-form-panel { border: 1px solid var(--sub-line); border-radius: var(--sub-radius); box-shadow: 0 4px 16px #29272a05; }
.subpage-contact .kontakt-card h3 { min-height: 0; margin-bottom: 20px; }
.subpage-contact .kontakt-card h3::before { content: '↗'; color: var(--sub-orange); display: inline-block; width: 24px; }
.subpage-contact .kontakt-standorte { padding-block: 80px; }
.subpage-contact .kontakt-portrait { object-fit: contain; aspect-ratio: auto; }
.subpage-contact .kontakt-seals img { max-width: 120px; height: 80px; }
.subpage-contact .kontakt-faq { padding-block: 72px; }
@media (max-width: 991px) {
  .subpage-v2 .sub-hero, .subpage-contact .kontakt-hero { padding-top: 56px; }
  .sub-layout { grid-template-columns: minmax(0, 1fr); padding-block: 56px; }
  .sub-aside { display: grid; grid-template-columns: 1.2fr 1fr; gap: 32px; align-items: start; }
  .sub-service-links { margin-top: 0; }
  .sub-privacy-layout { grid-template-columns: 1fr; gap: 40px; }
  .sub-toc { columns: 2; }
  .sub-toc h2 { column-span: all; }
  .sub-toc a { break-inside: avoid; }
  .sub-legal-grid { grid-template-columns: 1fr; }
  .sub-offers { grid-template-columns: 1fr; }
  .subpage-contact .kontakt-container { width: 90%; }
}
@media (max-width: 599px) {
  .subpage-v2 .sub-hero { padding-block: 44px; }
  .subpage-v2 .sub-hero h1 { font-size: 38px; }
  .subpage-v2 .sub-lead { font-size: 21px; margin-top: 22px; }
  .sub-layout { padding-block: 40px; gap: 40px; }
  .sub-aside, .sub-cta { grid-template-columns: 1fr; }
  .sub-advice { padding: 24px; }
  .sub-content-block + .sub-content-block { margin-top: 36px; padding-top: 32px; }
  .subpage-v2 .sub-feature { padding: 18px; }
  .sub-cta { margin-bottom: 56px; }
  .sub-cta > img { min-height: 0; aspect-ratio: 16 / 10; height: auto; }
  .sub-offers, .sub-legal-body, .sub-privacy-layout { padding-block: 40px 56px; }
  .sub-toc { columns: auto; }
  .subpage-contact .kontakt-container { width: calc(100% - 40px); }
  .subpage-contact .kontakt-layout, .subpage-contact .kontakt-faq, .subpage-contact .kontakt-standorte { padding-block: 44px; }
}
.subpage-v2 .sub-content-block h3 { font-size: 21px; line-height: 1.4; margin-bottom: 20px; }
.subpage-v2 .sub-legal-card p + p { margin-top: 22px; }
.sub-skip { position: fixed; top: 12px; left: 16px; z-index: 1100; padding: 12px 20px; border-radius: 8px; background: #fff; color: #29272a; transform: translateY(-400%); }
.sub-skip:focus { transform: none; outline: 3px solid #e95a22; }
.sub-article { min-width: 0; }
.sub-media { min-width: 0; }
.sub-media .ms-wrap, .sub-media figure { max-width: 100%; margin-left: 0; margin-right: 0; }
.sub-media video, .sub-media img { display: block; max-width: 100%; width: 100%; height: auto; }
