/*
Theme Name: Uncode Child
Description: Child theme for Uncode theme
Author: Undsgn™ / Daniel
Author URI: http://www.undsgn.com
Template: uncode
Version: 1.8.4
Optimized: 2026-04-28 12:39:55 CEST
Fix: 2026-04-28 12:45:00 CEST - Header logo excluded from global media sizing
SEO: 2026-04-28 14:25:52 CEST - H4 content headings and anchor-ready sections
Footer: 2026-05-12 - Footer spacing and column breathing room
Footer: 2026-05-19 - Footer text links readability refinement
Footer: 2026-05-19 - Footer text links hover underline
Content: 2026-05-29 - Scoped inline text link underline refinement
CSS: 2026-05-29 - Header cleanup and scoped link system
CSS: 2026-05-29 - Unused typography helpers removed
CSS: 2026-05-29 - Unused c-h3/c-h4 helpers removed
SEO: 2026-05-29 - Semantic h1/h2 markup support
SEO: 2026-05-29 - Semantic h3 card title support
Mobile: 2026-05-12 - Footer compactness and readability refinement
Legal: 2026-05-12 - Scoped legal page readability refinement
Text Domain: uncode
*/

/* =============================================================================

   BUDDE PHYSIO 2026 — CSS SYSTEM
   Uncode Child / WPBakery
   Stand: 2026

   Scope-Klassen
   -----------------------------------------------------------------------------
   Startseite:       body.c-page-main
   Inhaltsbereiche:  .c-content
   Accordions:       .accordion-leistungen
   Footer:           .c-site-footer
   Rechtliche Seiten: body.c-page-legal / .c-page-legal

   Markenfarben
   -----------------------------------------------------------------------------
   Hauptblau:   #6684ac
   Salbeigrün:  #9ab095
   Warmweiß:    #f7f2eb
   Dunkelblau:  #2f3740

   Blockübersicht
   -----------------------------------------------------------------------------
   BLOCK 00 — Font System
   BLOCK 01 — Seitenbasis
   BLOCK 02 — Content Wrapper
   BLOCK 03 — Typografie
   BLOCK 04 — Linksystem
   BLOCK 05 — Navigation / Social Icons
   BLOCK 06 — Accordion Leistungen
   BLOCK 07 — Footer
   BLOCK 08 — Legal Pages
   BLOCK 09 — Utility / Accessibility

   ============================================================================= */




/* =============================================================================
   BLOCK 00 — FONT SYSTEM
   ============================================================================= */

/* open-sans-300 - latin */
@font-face {
  font-display: swap;
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 300;
  src: url('fonts/open-sans-v44-latin-300.eot');
  src: url('fonts/open-sans-v44-latin-300.eot?#iefix') format('embedded-opentype'),
       url('fonts/open-sans-v44-latin-300.woff2') format('woff2'),
       url('fonts/open-sans-v44-latin-300.woff') format('woff'),
       url('fonts/open-sans-v44-latin-300.ttf') format('truetype'),
       url('fonts/open-sans-v44-latin-300.svg#OpenSans') format('svg');
}

/* open-sans-300italic - latin */
@font-face {
  font-display: swap;
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 300;
  src: url('fonts/open-sans-v44-latin-300italic.eot');
  src: url('fonts/open-sans-v44-latin-300italic.eot?#iefix') format('embedded-opentype'),
       url('fonts/open-sans-v44-latin-300italic.woff2') format('woff2'),
       url('fonts/open-sans-v44-latin-300italic.woff') format('woff'),
       url('fonts/open-sans-v44-latin-300italic.ttf') format('truetype'),
       url('fonts/open-sans-v44-latin-300italic.svg#OpenSans') format('svg');
}

/* open-sans-regular - latin */
@font-face {
  font-display: swap;
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  src: url('fonts/open-sans-v44-latin-regular.eot');
  src: url('fonts/open-sans-v44-latin-regular.eot?#iefix') format('embedded-opentype'),
       url('fonts/open-sans-v44-latin-regular.woff2') format('woff2'),
       url('fonts/open-sans-v44-latin-regular.woff') format('woff'),
       url('fonts/open-sans-v44-latin-regular.ttf') format('truetype'),
       url('fonts/open-sans-v44-latin-regular.svg#OpenSans') format('svg');
}

/* open-sans-italic - latin */
@font-face {
  font-display: swap;
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 400;
  src: url('fonts/open-sans-v44-latin-italic.eot');
  src: url('fonts/open-sans-v44-latin-italic.eot?#iefix') format('embedded-opentype'),
       url('fonts/open-sans-v44-latin-italic.woff2') format('woff2'),
       url('fonts/open-sans-v44-latin-italic.woff') format('woff'),
       url('fonts/open-sans-v44-latin-italic.ttf') format('truetype'),
       url('fonts/open-sans-v44-latin-italic.svg#OpenSans') format('svg');
}

/* open-sans-500 - latin */
@font-face {
  font-display: swap;
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 500;
  src: url('fonts/open-sans-v44-latin-500.eot');
  src: url('fonts/open-sans-v44-latin-500.eot?#iefix') format('embedded-opentype'),
       url('fonts/open-sans-v44-latin-500.woff2') format('woff2'),
       url('fonts/open-sans-v44-latin-500.woff') format('woff'),
       url('fonts/open-sans-v44-latin-500.ttf') format('truetype'),
       url('fonts/open-sans-v44-latin-500.svg#OpenSans') format('svg');
}

/* open-sans-500italic - latin */
@font-face {
  font-display: swap;
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 500;
  src: url('fonts/open-sans-v44-latin-500italic.eot');
  src: url('fonts/open-sans-v44-latin-500italic.eot?#iefix') format('embedded-opentype'),
       url('fonts/open-sans-v44-latin-500italic.woff2') format('woff2'),
       url('fonts/open-sans-v44-latin-500italic.woff') format('woff'),
       url('fonts/open-sans-v44-latin-500italic.ttf') format('truetype'),
       url('fonts/open-sans-v44-latin-500italic.svg#OpenSans') format('svg');
}

/* open-sans-600 - latin */
@font-face {
  font-display: swap;
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 600;
  src: url('fonts/open-sans-v44-latin-600.eot');
  src: url('fonts/open-sans-v44-latin-600.eot?#iefix') format('embedded-opentype'),
       url('fonts/open-sans-v44-latin-600.woff2') format('woff2'),
       url('fonts/open-sans-v44-latin-600.woff') format('woff'),
       url('fonts/open-sans-v44-latin-600.ttf') format('truetype'),
       url('fonts/open-sans-v44-latin-600.svg#OpenSans') format('svg');
}

/* open-sans-600italic - latin */
@font-face {
  font-display: swap;
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 600;
  src: url('fonts/open-sans-v44-latin-600italic.eot');
  src: url('fonts/open-sans-v44-latin-600italic.eot?#iefix') format('embedded-opentype'),
       url('fonts/open-sans-v44-latin-600italic.woff2') format('woff2'),
       url('fonts/open-sans-v44-latin-600italic.woff') format('woff'),
       url('fonts/open-sans-v44-latin-600italic.ttf') format('truetype'),
       url('fonts/open-sans-v44-latin-600italic.svg#OpenSans') format('svg');
}

/* open-sans-700 - latin */
@font-face {
  font-display: swap;
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 700;
  src: url('fonts/open-sans-v44-latin-700.eot');
  src: url('fonts/open-sans-v44-latin-700.eot?#iefix') format('embedded-opentype'),
       url('fonts/open-sans-v44-latin-700.woff2') format('woff2'),
       url('fonts/open-sans-v44-latin-700.woff') format('woff'),
       url('fonts/open-sans-v44-latin-700.ttf') format('truetype'),
       url('fonts/open-sans-v44-latin-700.svg#OpenSans') format('svg');
}

/* open-sans-700italic - latin */
@font-face {
  font-display: swap;
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 700;
  src: url('fonts/open-sans-v44-latin-700italic.eot');
  src: url('fonts/open-sans-v44-latin-700italic.eot?#iefix') format('embedded-opentype'),
       url('fonts/open-sans-v44-latin-700italic.woff2') format('woff2'),
       url('fonts/open-sans-v44-latin-700italic.woff') format('woff'),
       url('fonts/open-sans-v44-latin-700italic.ttf') format('truetype'),
       url('fonts/open-sans-v44-latin-700italic.svg#OpenSans') format('svg');
}

/* open-sans-800 - latin */
@font-face {
  font-display: swap;
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 800;
  src: url('fonts/open-sans-v44-latin-800.eot');
  src: url('fonts/open-sans-v44-latin-800.eot?#iefix') format('embedded-opentype'),
       url('fonts/open-sans-v44-latin-800.woff2') format('woff2'),
       url('fonts/open-sans-v44-latin-800.woff') format('woff'),
       url('fonts/open-sans-v44-latin-800.ttf') format('truetype'),
       url('fonts/open-sans-v44-latin-800.svg#OpenSans') format('svg');
}

/* open-sans-800italic - latin */
@font-face {
  font-display: swap;
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 800;
  src: url('fonts/open-sans-v44-latin-800italic.eot');
  src: url('fonts/open-sans-v44-latin-800italic.eot?#iefix') format('embedded-opentype'),
       url('fonts/open-sans-v44-latin-800italic.woff2') format('woff2'),
       url('fonts/open-sans-v44-latin-800italic.woff') format('woff'),
       url('fonts/open-sans-v44-latin-800italic.ttf') format('truetype'),
       url('fonts/open-sans-v44-latin-800italic.svg#OpenSans') format('svg');
}


/* =============================================================================
   BLOCK 01 — SEITENBASIS
   =============================================================================
   Zweck:
   Schlanke Grundbasis für die neue Hauptseite.

   Benötigt:
   Body-Class auf der Startseite:
     c-page-main

   Hinweis:
   Dieser Block setzt nur die Projektbasis. Layout, Farben der Rows und Buttons
   bleiben bewusst weitgehend bei Uncode.
   ============================================================================= */

html {
  -webkit-text-size-adjust: 100%;
}

body.c-page-main {
  --page-bg: #f7f2eb;
  --page-blue: #6684ac;
  --page-green: #9ab095;
  --page-navy: #2f3740;

  --page-text: #4f5963;
  --page-text-strong: #2f3740;
  --page-text-muted: #6d7680;
  --page-line: rgba(79, 89, 99, .16);
  --page-focus: #6684ac;

  background: var(--page-bg);
  color: var(--page-text);
  font-family: "Open Sans", Arial, Helvetica, sans-serif;
  font-size: 17px;
  line-height: 1.6;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body.c-page-main ::selection {
  background: rgba(102, 132, 172, .28);
  color: #1f2429;
}

body.c-page-main :where(.main-container, .site-content, .post-content) img,
body.c-page-main :where(.main-container, .site-content, .post-content) svg,
body.c-page-main :where(.main-container, .site-content, .post-content) video {
  max-width: 100%;
  height: auto;
}

body.c-page-main *,
body.c-page-main *::before,
body.c-page-main *::after {
  box-sizing: border-box;
}



/* =============================================================================
   BLOCK 02 — CONTENT WRAPPER
   =============================================================================
   Extra Class im Builder:
     c-content

   Zweck:
   Row-safe Inhaltsbreite für Uncode/WPBakery.

   Varianten:
     c-content
     c-content c-content--narrow
     c-content c-content--wide

   Wichtig:
   Bei VC Rows wird nicht die Row selbst begrenzt, sondern der innere
   .row-parent. Dadurch bleibt Uncode stabil.
   ============================================================================= */

.c-content {
  --content-maxw: 1200px;
  --content-gutter: 22px;

  max-width: var(--content-maxw);
  margin-inline: auto;
  padding-inline: var(--content-gutter);
}

.c-content.c-content--narrow {
  --content-maxw: 900px;
}

.c-content.c-content--wide {
  --content-maxw: 1320px;
}

.vc_row.c-content,
.vc_section.c-content {
  max-width: none;
  margin-inline: 0;
  padding-inline: 0;
}

.vc_row.c-content > .row-parent,
.vc_section.c-content > .row-parent {
  max-width: var(--content-maxw);
  margin-inline: auto;
  padding-inline: var(--content-gutter);
}




/* =============================================================================
   BLOCK 03 — TYPOGRAFIE
   =============================================================================
   Extra Classes:
     c-h1
     c-h2
     c-card-title
     c-text

   Zweck:
   Nur die bewusst gesetzten Textklassen werden gestaltet.
   Keine globalen h1/h2/p-Overrides.
   ============================================================================= */

body.c-page-main,
.style-light {
  --c-text-color: #5f6872;
  --c-heading-color: #4f5963;
}

.style-dark {
  --c-text-color: rgba(255, 255, 255, .88);
  --c-heading-color: #ffffff;
}

.c-content .c-h1,
.c-content .c-h1 :is(p, span, div),
.c-content h1.c-h1 {
  font-family: "Open Sans", Arial, Helvetica, sans-serif;
  font-size: 42px;
  line-height: 1.12;
  font-weight: 600;
  color: var(--c-heading-color);
  text-transform: uppercase;
  letter-spacing: .04em;
  margin: 0 0 14px 0;
}

.c-content .c-h2,
.c-content .c-h2 :is(p, span, div),
.c-content h2.c-h2 {
  font-family: "Open Sans", Arial, Helvetica, sans-serif;
  font-size: 28px;
  line-height: 1.2;
  font-weight: 600;
  color: var(--c-heading-color);
  letter-spacing: .035em;
  margin: 0 0 10px 0;
}

.c-content .c-h1 h1,
.c-content .c-h2 h2 {
  color: inherit;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  line-height: inherit;
  margin: 0;
  text-transform: inherit;
}

.c-content .c-card-title h3 {
  font-family: "Open Sans", Arial, Helvetica, sans-serif;
  font-size: 20px;
  line-height: 1.25;
  font-weight: 600;
  letter-spacing: .03em;
  color: var(--c-heading-color);
  margin: 0 0 12px 0;
}

.c-content .c-text,
.c-content .c-text :is(p, span, div, li) {
  font-family: "Open Sans", Arial, Helvetica, sans-serif;
  font-size: 18px;
  line-height: 1.7;
  font-weight: 400;
  letter-spacing: .02em;
  color: var(--c-text-color);
}

.c-content .c-text p {
  margin: 0 0 14px 0;
}

.c-content .c-text p:last-child {
  margin-bottom: 0;
}

.c-content :is(.c-h1, .c-h2, .c-card-title, .c-text),
.c-content :is(.c-h1, .c-h2, .c-card-title, .c-text) * {
  hyphens: auto;
  overflow-wrap: anywhere;
}

/* Mobile: keep large section background images as calm horizontal strips. */
@media (max-width: 767px) {
  body.c-page-main .c-media-strip {
    min-height: 260px !important;
    height: 260px !important;
    background-size: cover !important;
  }
}

@media (max-width: 767px) {
  .c-content {
    --content-gutter: 18px;
  }

  .c-content .c-h1,
  .c-content .c-h1 :is(p, span, div),
  .c-content h1.c-h1 {
    font-size: 28px;
    letter-spacing: .03em;
  }

  .c-content .c-h2,
  .c-content .c-h2 :is(p, span, div),
  .c-content h2.c-h2 {
    font-size: 22px;
  }

  .c-content .c-card-title h3 {
    font-size: 19px;
  }

  .c-content .c-text,
  .c-content .c-text :is(p, span, div, li) {
    font-size: 17px;
    line-height: 1.65;
  }
}




/* =============================================================================
   BLOCK 04 — LINKSYSTEM
   =============================================================================
   Zweck:
   Links nur dort gestalten, wo sie bewusst Projektbestandteil sind.

   Wichtig:
   Keine globalen Linkfarben für alle Uncode-/Theme-Links setzen.
   Navigation, Buttons und Theme-Controls bleiben beim Theme.
   ============================================================================= */

body {
  --c-focus: #6684ac;
}

.c-content .c-text a:not(.btn-text-skin) {
  background-image: linear-gradient(currentColor, currentColor);
  background-position: 0 100%;
  background-repeat: no-repeat;
  background-size: 100% 1px;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
  color: inherit !important;
  font-weight: 600;
  text-decoration: none !important;
  transition: background-size 180ms ease;
}

.c-content .c-text a:not(.btn-text-skin):hover,
.c-content .c-text a:not(.btn-text-skin):focus-visible {
  background-size: 0 1px;
  color: inherit !important;
}

.c-content .c-text a:not(.btn-text-skin):focus-visible,
.c-site-footer a:focus-visible,
.c-page-legal .c-legal-text a:focus-visible,
.accordion-leistungen .panel-title > a:focus-visible {
  outline: 2px solid var(--c-focus) !important;
  outline-offset: 3px !important;
  border-radius: 4px;
}




/* =============================================================================
   BLOCK 05 — NAVIGATION / SOCIAL ICONS
   Zweck:
   Icons in der Main-Navi und im Mobile-Menü größer machen
   ============================================================================= */

/* Desktop */
.menu-container .menu-smart-social a,
.menu-container .menu-smart-social i,
.navbar-extra-icons a,
.navbar-extra-icons i {
  font-size: 20px !important;
  line-height: 1 !important;
}

/* etwas mehr Luft zwischen den Icons */
.menu-container .menu-smart-social li,
.navbar-extra-icons li {
  margin-left: 1px;
  margin-right: 1px;
}

/* Mobile */
@media (max-width: 959px) {
  .menu-container .menu-smart-social a,
  .menu-container .menu-smart-social i,
  .navbar-extra-icons a,
  .navbar-extra-icons i,
  .mobile-additional-icons a,
  .mobile-additional-icons i {
    font-size: 28px !important;
    line-height: 1 !important;
  }

  .menu-container .menu-smart-social li,
  .navbar-extra-icons li,
  .mobile-additional-icons li {
    margin-left: 6px;
    margin-right: 6px;
  }
}




/* =============================================================================
   BLOCK 06 — ACCORDION LEISTUNGEN
   =============================================================================
   Extra Class am Accordion:
     accordion-leistungen

   Zweck:
   Zentrales Styling für Therapieangebote und organisatorische Akkordeons.

   Tatsächliche Frontend-Struktur:
     .uncode-accordion.wpb_accordion.accordion-leistungen
     .panel
     .panel-heading.wpb_accordion_header
     .panel-title > a
     .panel-body.wpb_accordion_content
   ============================================================================= */

.accordion-leistungen {
  --acc-bg: #ffffff;
  --acc-text: #4f5963;
  --acc-title: #6684ac;
  --acc-title-hover: #9ab095;
  --acc-line: rgba(79, 89, 99, .16);
  --acc-title-fs: 22px;
  --acc-body-fs: 17px;
  --acc-icon-size: 24px;
  --acc-icon-gap: 14px;
}

.accordion-leistungen,
.accordion-leistungen .panel-group,
.accordion-leistungen .wpb_accordion_wrapper {
  background: transparent !important;
}

.accordion-leistungen .panel,
.accordion-leistungen .panel-default,
.accordion-leistungen .wpb_accordion_section {
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  margin: 0 !important;
  padding: 0 !important;
}

.accordion-leistungen .panel-heading,
.accordion-leistungen .wpb_accordion_header {
  background: var(--acc-bg) !important;
  border: 0 !important;
  border-bottom: 1px solid var(--acc-line) !important;
  padding: 0 !important;
  margin: 0 !important;
  box-shadow: none !important;
}

.accordion-leistungen .panel-title {
  margin: 0 !important;
  padding: 0 !important;
}

.accordion-leistungen .panel-title > a {
  display: flex !important;
  align-items: center !important;
  gap: var(--acc-icon-gap) !important;
  width: 100% !important;
  min-height: 46px !important;
  padding: 13px 0 !important;
  color: var(--acc-title) !important;
  font-family: "Open Sans", Arial, Helvetica, sans-serif !important;
  font-size: var(--acc-title-fs) !important;
  line-height: 1.45 !important;
  font-weight: 600 !important;
  letter-spacing: .01em !important;
  text-decoration: none !important;
  transition: color 180ms ease;
}

.accordion-leistungen .panel-title > a:hover,
.accordion-leistungen .panel-title > a:focus-visible {
  color: var(--acc-title-hover) !important;
}

.accordion-leistungen .wpb_accordion_header i.fa.fa-heart {
  flex: 0 0 auto !important;
  font-size: var(--acc-icon-size) !important;
  line-height: 1 !important;
  width: var(--acc-icon-size) !important;
  height: var(--acc-icon-size) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin-right: 0 !important;
  color: currentColor !important;
}

.accordion-leistungen .wpb_accordion_header i.fa.fa-heart::before {
  font-size: var(--acc-icon-size) !important;
  line-height: 1 !important;
}

.accordion-leistungen .panel-body,
.accordion-leistungen .wpb_accordion_content,
.accordion-leistungen .ui-accordion-content {
  background: var(--acc-bg) !important;
  border: 0 !important;
  border-bottom: 1px solid var(--acc-line) !important;
  padding: 18px 0 22px 0 !important;
  color: var(--acc-text) !important;
  font-family: "Open Sans", Arial, Helvetica, sans-serif !important;
  font-size: var(--acc-body-fs) !important;
  line-height: 1.7 !important;
  box-sizing: border-box !important;
}

.accordion-leistungen .panel-body h4,
.accordion-leistungen .wpb_accordion_content h4,
.accordion-leistungen .ui-accordion-content h4 {
  font-family: "Open Sans", Arial, Helvetica, sans-serif !important;
  font-size: 18px !important;
  line-height: 1.35 !important;
  font-weight: 600 !important;
  color: var(--acc-text) !important;
  letter-spacing: .01em !important;
  margin: 24px 0 7px 0 !important;
}

.accordion-leistungen .panel-body h4:first-child,
.accordion-leistungen .wpb_accordion_content h4:first-child,
.accordion-leistungen .ui-accordion-content h4:first-child {
  margin-top: 0 !important;
}

.accordion-leistungen .panel-body p,
.accordion-leistungen .wpb_accordion_content p,
.accordion-leistungen .ui-accordion-content p {
  margin: 0 0 14px 0 !important;
}

.accordion-leistungen .panel-body ul,
.accordion-leistungen .wpb_accordion_content ul,
.accordion-leistungen .ui-accordion-content ul {
  margin: 8px 0 18px 0 !important;
  padding-left: 1.2em !important;
}

.accordion-leistungen .panel-body li,
.accordion-leistungen .wpb_accordion_content li,
.accordion-leistungen .ui-accordion-content li {
  margin: 0 0 7px 0 !important;
}

.accordion-leistungen .panel-body li:last-child,
.accordion-leistungen .wpb_accordion_content li:last-child,
.accordion-leistungen .ui-accordion-content li:last-child,
.accordion-leistungen .panel-body p:last-child,
.accordion-leistungen .wpb_accordion_content p:last-child,
.accordion-leistungen .ui-accordion-content p:last-child {
  margin-bottom: 0 !important;
}

.accordion-leistungen .panel-body :is(p, li, span, div),
.accordion-leistungen .wpb_accordion_content :is(p, li, span, div) {
  color: inherit !important;
  font-size: inherit;
  line-height: inherit;
}

.accordion-leistungen .panel-body > *:first-child,
.accordion-leistungen .wpb_accordion_content > *:first-child {
  margin-top: 0 !important;
}

.accordion-leistungen .panel-body > *:last-child,
.accordion-leistungen .wpb_accordion_content > *:last-child {
  margin-bottom: 0 !important;
}

@media (max-width: 640px) {
  .accordion-leistungen {
    --acc-title-fs: 18px;
    --acc-body-fs: 16px;
    --acc-icon-size: 20px;
    --acc-icon-gap: 10px;
  }

  .accordion-leistungen .panel-title > a {
    min-height: 44px !important;
    padding: 12px 0 !important;
  }

  .accordion-leistungen .panel-body h4,
  .accordion-leistungen .wpb_accordion_content h4,
  .accordion-leistungen .ui-accordion-content h4 {
    font-size: 17px !important;
    line-height: 1.35 !important;
    margin: 20px 0 6px 0 !important;
  }
}




/* =============================================================================
   BLOCK 07 — FOOTER
   =============================================================================
   Extra Class auf der Footer-Row:
     c-site-footer

   Optionale Textklassen:
     c-footer-h2
     c-footer-h3
     c-footer-text
     c-footer-links
     c-footer-small

   Zweck:
   Schlanker Footer-Scope ohne globale Eingriffe.
   ============================================================================= */

.c-site-footer {
  --footer-text-color: #ffffff;
  --footer-link-color: #eef3ec;
  --footer-link-hover: #ffffff;

  --footer-maxw: 1360px;
  --footer-gutter: 44px;
  --footer-column-pad: 24px;

  --footer-h2-size: 44px;
  --footer-h3-size: 18px;
  --footer-text-size: 17px;
  --footer-small-size: 15px;

  --footer-h2-lh: 1.15;
  --footer-h3-lh: 1.25;
  --footer-text-lh: 1.55;
  --footer-small-lh: 1.45;

  --footer-gap-h2: 14px;
  --footer-gap-h3: 2px;
  --footer-gap-text: 6px;

  color: var(--footer-text-color);
}

.vc_row.c-site-footer > .row-parent,
.vc_section.c-site-footer > .row-parent {
  max-width: var(--footer-maxw);
  margin-inline: auto;
  padding-inline: var(--footer-gutter);
}

.c-site-footer .row-inner > div:not(.vc_helper) {
  padding-left: var(--footer-column-pad) !important;
  padding-right: var(--footer-column-pad) !important;
}

.c-site-footer,
.c-site-footer .uncode_text_column,
.c-site-footer .uncode_text_column *,
.c-site-footer .wpb_text_column,
.c-site-footer .wpb_text_column *,
.c-site-footer .vc_column_text,
.c-site-footer .vc_column_text * {
  color: inherit;
  font-size: inherit;
  line-height: inherit;
}

.c-site-footer .c-footer-h2,
.c-site-footer .c-footer-h2 :is(p, span, div),
.c-site-footer h2.c-footer-h2 {
  font-family: "Open Sans", Arial, Helvetica, sans-serif;
  font-size: var(--footer-h2-size);
  line-height: var(--footer-h2-lh);
  font-weight: 500;
  color: var(--footer-text-color);
  margin: 0 0 var(--footer-gap-h2) 0;
  text-align: center;
  text-transform: uppercase;
}

.c-site-footer .c-footer-h3,
.c-site-footer .c-footer-h3 :is(p, span, div),
.c-site-footer h3.c-footer-h3,
.c-site-footer .c-footer-h3 a,
.c-site-footer a.c-footer-h3 {
  font-family: "Open Sans", Arial, Helvetica, sans-serif;
  font-size: var(--footer-h3-size);
  line-height: var(--footer-h3-lh);
  font-weight: 500;
  color: var(--footer-text-color) !important;
  margin: 0 0 var(--footer-gap-h3) 0;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: .04em;
  text-decoration: none;
}

.c-site-footer .c-footer-h3 a:hover,
.c-site-footer a.c-footer-h3:hover {
  color: var(--footer-text-color) !important;
  opacity: .9;
}

.c-site-footer .c-footer-text,
.c-site-footer .c-footer-text :is(p, span, div, li) {
  font-family: "Open Sans", Arial, Helvetica, sans-serif;
  font-size: var(--footer-text-size);
  line-height: 1.68;
  font-weight: 400;
  color: var(--footer-text-color);
  text-align: center;
}

.c-site-footer .c-footer-text p {
  margin: 0 0 var(--footer-gap-text) 0;
}

.c-site-footer .c-footer-text p:last-child {
  margin-bottom: 0;
}

.c-site-footer .c-footer-links,
.c-site-footer .c-footer-links :is(p, li, a) {
  font-family: "Open Sans", Arial, Helvetica, sans-serif;
  font-size: var(--footer-text-size);
  line-height: 1.72;
  font-weight: 500;
  text-align: center;
}

.c-site-footer .c-footer-links ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.c-site-footer .c-footer-links li {
  margin: 0 0 var(--footer-gap-text) 0;
}

.c-site-footer .c-footer-links li:last-child {
  margin-bottom: 0;
}

.c-site-footer .c-footer-links a {
  position: relative;
  display: inline-block;
  color: var(--footer-link-color) !important;
  text-decoration: none;
  transition: color 180ms ease;
}

.c-site-footer .c-footer-links a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: .06em;
  width: 100%;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: right center;
  transition: transform 220ms ease;
  opacity: .75;
}

.c-site-footer .c-footer-links a:hover,
.c-site-footer .c-footer-links a:focus-visible {
  color: var(--footer-link-hover) !important;
}

.c-site-footer .c-footer-links a:hover::after,
.c-site-footer .c-footer-links a:focus-visible::after {
  transform: scaleX(1);
  transform-origin: left center;
}

.c-site-footer .c-footer-small,
.c-site-footer .c-footer-small :is(p, span, div) {
  font-family: "Open Sans", Arial, Helvetica, sans-serif;
  font-size: var(--footer-small-size);
  line-height: var(--footer-small-lh);
  color: var(--footer-text-color);
  text-align: center;
}

.c-site-footer .c-footer-small p {
  margin: 0;
}

.c-site-footer :is(.icon-box, .social-icon) :is(a, i, .fa),
.c-site-footer :is(.icon-box, .social-icon) a:hover :is(i, .fa) {
  color: var(--footer-text-color) !important;
}

.c-site-footer :is(.icon-box, .social-icon) a:hover {
  color: var(--footer-text-color) !important;
  opacity: .9;
}

@media (max-width: 767px) {
  .c-site-footer {
    --footer-gutter: 28px;
    --footer-column-pad: 10px;
    --footer-h2-size: 28px;
    --footer-h3-size: 15px;
    --footer-text-size: 15px;
    --footer-small-size: 14px;
    --footer-gap-h2: 8px;
    --footer-gap-h3: 6px;
    --footer-gap-text: 4px;
  }

  .c-site-footer .row-inner > div:not(.vc_helper) {
    padding-top: 10px !important;
    padding-bottom: 10px !important;
  }

  .c-site-footer .c-footer-h2,
  .c-site-footer h2.c-footer-h2 {
    letter-spacing: .035em;
  }

  .c-site-footer .c-footer-h3,
  .c-site-footer h3.c-footer-h3,
  .c-site-footer .c-footer-h3 a,
  .c-site-footer a.c-footer-h3 {
    letter-spacing: .035em;
  }

  .c-site-footer .c-footer-text,
  .c-site-footer .c-footer-text :is(p, span, div, li),
  .c-site-footer .c-footer-links,
  .c-site-footer .c-footer-links :is(p, li, a) {
    line-height: 1.55;
  }
}




/* =============================================================================
   BLOCK 08 — LEGAL PAGES
   =============================================================================
   Body-Class:
     c-page-legal

   Zweck:
   Ruhige Lesebreite und saubere Typografie für Impressum, Datenschutz, AGB.
   ============================================================================= */

body.c-page-legal,
.c-page-legal {
  --legal-bg: #ffffff;
  --legal-text: #4f5963;
  --legal-heading: #2f3740;
  --legal-link: #4f6f95;
  --legal-link-hover: #2f3740;
  --legal-maxw: 860px;
  --legal-gutter: 24px;

  background: var(--legal-bg);
  color: var(--legal-text);
  font-family: "Open Sans", Arial, Helvetica, sans-serif;
  font-size: 16px;
  line-height: 1.72;
}

body.c-page-legal .c-page-legal,
.vc_row.c-page-legal > .row-parent,
.vc_section.c-page-legal > .row-parent {
  max-width: var(--legal-maxw);
  margin-inline: auto;
  padding-inline: var(--legal-gutter);
}

.c-page-legal .c-legal-text,
.c-page-legal .c-legal-text * {
  text-align: left;
  text-transform: none;
}

.c-page-legal .c-legal-text {
  max-width: 820px;
  margin-inline: auto;
}

body.c-page-legal .c-legal-text h1,
body.c-page-legal .c-legal-text h2,
body.c-page-legal .c-legal-text h3,
body.c-page-legal .c-legal-text h4,
.c-page-legal .c-legal-text h1,
.c-page-legal .c-legal-text h2,
.c-page-legal .c-legal-text h3,
.c-page-legal .c-legal-text h4 {
  color: var(--legal-heading);
  font-family: "Open Sans", Arial, Helvetica, sans-serif;
  letter-spacing: 0;
}

body.c-page-legal .c-legal-text h1,
.c-page-legal .c-legal-text h1 {
  font-size: 34px;
  line-height: 1.2;
  font-weight: 600;
  margin: 0 0 24px 0;
}

body.c-page-legal .c-legal-text h2,
.c-page-legal .c-legal-text h2 {
  font-size: 20px;
  line-height: 1.35;
  font-weight: 600;
  margin: 38px 0 12px 0;
}

body.c-page-legal .c-legal-text h3,
.c-page-legal .c-legal-text h3 {
  font-size: 18px;
  line-height: 1.4;
  font-weight: 600;
  margin: 22px 0 8px 0;
}

body.c-page-legal .c-legal-text p,
body.c-page-legal .c-legal-text li,
.c-page-legal .c-legal-text p,
.c-page-legal .c-legal-text li {
  font-size: 16px;
  line-height: 1.72;
  color: var(--legal-text);
  margin: 0 0 15px 0;
}

body.c-page-legal .c-legal-text ul,
body.c-page-legal .c-legal-text ol,
.c-page-legal .c-legal-text ul,
.c-page-legal .c-legal-text ol {
  padding-left: 1.2em;
}

body.c-page-legal .c-legal-text a[href],
body.c-page-legal .c-legal-text a[href]:link,
body.c-page-legal .c-legal-text a[href]:visited,
.c-page-legal .c-legal-text a[href],
.c-page-legal .c-legal-text a[href]:link,
.c-page-legal .c-legal-text a[href]:visited,
body .vc_row.c-page-legal .uncode_text_column.c-legal-text a[href],
body .vc_row.c-page-legal .uncode_text_column.c-legal-text a[href]:link,
body .vc_row.c-page-legal .uncode_text_column.c-legal-text a[href]:visited,
body .vc_row.c-page-legal .wpb_text_column.c-legal-text a[href],
body .vc_row.c-page-legal .wpb_text_column.c-legal-text a[href]:link,
body .vc_row.c-page-legal .wpb_text_column.c-legal-text a[href]:visited {
  background-image: linear-gradient(currentColor, currentColor) !important;
  background-position: 0 100% !important;
  background-repeat: no-repeat !important;
  background-size: 100% 1px !important;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
  border-bottom: 0 !important;
  color: var(--legal-link) !important;
  opacity: 1 !important;
  text-decoration: none !important;
  transition: background-size 180ms ease, color 180ms ease;
  word-break: break-word;
}

body.c-page-legal .c-legal-text a[href]:hover,
body.c-page-legal .c-legal-text a[href]:focus-visible,
.c-page-legal .c-legal-text a[href]:hover,
.c-page-legal .c-legal-text a[href]:focus-visible,
body .vc_row.c-page-legal .uncode_text_column.c-legal-text a[href]:hover,
body .vc_row.c-page-legal .uncode_text_column.c-legal-text a[href]:focus-visible,
body .vc_row.c-page-legal .wpb_text_column.c-legal-text a[href]:hover,
body .vc_row.c-page-legal .wpb_text_column.c-legal-text a[href]:focus-visible {
  background-size: 0 1px !important;
  color: var(--legal-link-hover) !important;
}

@media (max-width: 767px) {
  body.c-page-legal,
  .c-page-legal {
    --legal-gutter: 18px;
    font-size: 16px;
  }

  .c-page-legal .c-legal-text {
    max-width: none;
  }

  body.c-page-legal .c-legal-text h1,
  .c-page-legal .c-legal-text h1 {
    font-size: 29px;
  }

  body.c-page-legal .c-legal-text h2,
  .c-page-legal .c-legal-text h2 {
    font-size: 19px;
  }

  body.c-page-legal .c-legal-text p,
  body.c-page-legal .c-legal-text li,
  .c-page-legal .c-legal-text p,
  .c-page-legal .c-legal-text li {
    font-size: 16px;
  }
}




/* =============================================================================
   BLOCK 09 — UTILITY / ACCESSIBILITY
   =============================================================================
   Zweck:
   Kleine Hilfsregeln für Barrierefreiheit, Sprungmarken und reduzierte Bewegung.
   ============================================================================= */

.c-sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.c-anchor-target {
  scroll-margin-top: 140px;
}

@media (prefers-reduced-motion: reduce) {
  html:focus-within {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}
