@charset "UTF-8";
/*
Theme Name: VIDEVA
Theme URI: http://www.videva.de/
Author: SIGN+DESIGN Werbeagentur
Author URI: https://www.signunddesign.com/
Description: Wozu lange um den „heißen Brei" reden: Unser Ziel ist Ihr Erfolg! Denn nur erfolgreiche Kunden sind auf Dauer glückliche Kunden. Und um Sie glücklich zu machen, richten wir unsere Energie auf Ihren stimmigen Auftritt und die Entwicklung zielführender Kommunikationsmaßnahmen. Werbung darf bei uns Spaß machen und ist trotzdem niemals Selbstzweck. Was zählt ist Ihr Erfolg! Die Früchte unserer Bemühungen: treue, langjährige Kunden und zahlreiche Weiterempfehlungen – mit ein Grund dafür, dass viele unserer Kunden aus dem Bereich Immobilien stammen. Und hier liegt auch seit über 20 Jahren ein Schwerpunkt unserer Arbeit.
Version: 2.1
*/

/* ========================================
   GLOBAL RESET
   ======================================== */

body, html, h1, h2, h3, h4, h5, h6, p, ul, ol, li {padding: 0;margin: 0;}
body, html {overflow: unset;width: 100%;-webkit-font-smoothing: antialiased;-webkit-overflow-scrolling: touch;}
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {display: block;}

/* ========================================
   FONTS
   ======================================== */

@font-face {
    font-family: "graphie";
    font-weight: 300;
    font-style: normal;
}
@font-face {
    font-family: "graphie";
    font-weight: 500;
    font-style: normal;
}

@font-face {
    font-family: "graphie";
    font-weight: 600;
    font-style: normal;
}
@font-face {
    font-family: "graphie";
    font-weight: 700;
    font-style: normal;
}

/* ========================================
   CSS VARIABLES
   ======================================== */

* {
    /* Typography */
    --font-family: "graphie", sans-serif;
    --font-size: 30px;
    --line-height: calc(var(--font-size) * 1.5);

    /* Layout */
    --wrp-width: 1200px;
    --wrp-width-md: 1430px;
    --wrp-width-lg: 1650px;
    --header-height: 130px;  /* Höhe des fixierten Headers */
    --submenu-offset: 134px;  /* Offset für Desktop-Submenu */

    /* Colors */

    --primary-color: #212A38;
    --cta: #F2920D;
    --text-on-dark: #F0F1F4;

    --text-color: #747474;

    /* Shades */
    --blue-shade-01: #F0F1F4;
    --blue-shade-02: #D5D8E0;
    --blue-shade-03: #848EA3;
    --blue-shade-04: #A9B7D3;

    --gradient: linear-gradient(304deg,rgba(132, 142, 163, 1) 0%, rgba(33, 42, 56, 1) 100%);

    /* Effects */
    --transition: all .5s cubic-bezier(0.65,0,.076,1);
    --box-shadow: 0px 5px 13px 0px rgba(0, 0, 0, 0.3);
    --border-radius: 50px;
}

/* Mobil überschreiben */
@media (max-width: 768px) {
    * {
        --border-radius: 25px;
        --font-size: 18px;
        --line-height: calc(var(--font-size) * 1.5);
    }
}

/* ========================================
   GRADIENT-BORDER ANIMATION
   ======================================== */

/* @property ermöglicht die Animation der CSS Custom Property als Winkel */
@property --border-angle {
    syntax: '<angle>';
    inherits: false;
    initial-value: 0deg;
}

@keyframes ansprechpartner-border {
    to { --border-angle: 360deg; }
}

/* ========================================
   GLOBAL STYLES
   ======================================== */

html {scroll-behavior: smooth;}
body {font-size: var(--font-size); font-family: var(--font-family), sans-serif; line-height: var(--line-height); color: var(--text-color);}
body.nav-open {overflow: hidden;}

/* ========================================
   GSAP SCROLLSMOOTHER
   ======================================== */

/* scroll-behavior: smooth kollidiert mit GSAP – deaktivieren */
html:has(#smooth-wrapper) {scroll-behavior: auto;}
/* display: flow-root erzeugt einen Block-Formatting-Context und verhindert,
   dass margin-top des ersten Kindes (.stage) durch #smooth-content kollabiert
   und den gesamten Inhalt 154px nach unten schiebt. */
#smooth-content {display: flow-root;}
img {-ms-interpolation-mode: bicubic;vertical-align: bottom;}
svg {width: 100%;height: 100%;}
hr {border: none;height: 1px;background: #ddd;margin: 0;}

.wrp {max-width: var(--wrp-width);width: 90%;margin: 0 auto;position: relative;box-sizing: border-box;}
.md {max-width: var(--wrp-width-md); margin: 0 auto;}
.lg {max-width: var(--wrp-width-lg); margin: 0 auto;}

/* ========================================
   UTILITY CLASSES
   ======================================== */

/* Margins */
.mb {margin-bottom: 150px;}
.mb50 {margin-bottom: 50px;}

/* ---- Signet ---- */

.videva-signet {width: 35%; height: auto; position: absolute; transform-origin: center center; transform: rotate(var(--signet-rot, 0deg));}
img.videva-signet {visibility: hidden;}
.stage .videva-signet {bottom: -5%; right: 50px; width: 15%;}
.stage .videva-signet path {fill: var(--blue-shade-01)!important;}
.textbildslider .videva-signet {bottom: -5%; right: -5%;}

/* ========================================
   TYPOGRAPHY
   ======================================== */

h1, h2, h3, h4, h5, h6 {margin: 0; color: var(--primary-color); font-weight: 600;}
h1 {font-size: 50px; line-height: 61px; margin-bottom: 50px;}
h2 {font-size: 40px; line-height: 48px; margin-bottom: 40px;}
h2 em {font-size: 30px; line-height: 30px; color: var(--text-color); font-style: normal; font-weight: 700;}
h3 {font-size: 30px; line-height: 40px; margin-bottom: 40px;}
h4 {font-size: 18px; line-height: 23px; margin-bottom: 20px;}
h5 {font-size: 14px; line-height: 14px; margin-bottom: 20px; color: var(--blue-shade-02);}
h6 {font-size: 16px; line-height: 14px; margin-bottom: 18px; color: var(--primary-color);}

a {text-decoration: none;outline: none;color: var(--text-color);transition: var(--transition);}
a:hover {color: var(--primary-color);transition: var(--transition);}

p {margin-bottom: var(--line-height);}
p:last-child {margin-bottom: 0;}

address {font-style: normal;color: var(--text-color);}
address a {display: block;}
ol, ul {margin-bottom: var(--line-height);}
li {margin-left: 20px;}

.ondark h1, .ondark h2, .ondark h3, .ondark h4, .ondark h5, .ondark h6 {color: var(--text-on-dark);}
.ondark {color: var(--text-on-dark);}
.ondark .btn {color: var(--primary-color); background: var(--text-on-dark);}

.btn {padding: 15px 30px;background: var(--primary-color);display: inline-block; margin-top: 25px; font-size: 20px; line-height: 20px; transition: var(--transition); color: var(--text-on-dark); border-radius: 50px;}
.btn:hover, .ondark .btn:hover {background: var(--cta); color: var(--text-on-dark); transition: var(--transition);}

/* ========================================
   HEADER — LIQUID GLASS
   ======================================== */

header {position: fixed;top: 0;width: 100%;z-index: 1000;box-sizing: border-box;background: transparent;border-bottom: 1px solid transparent;box-shadow: none;transition: background 0.4s ease, border-color 0.4s ease, box-shadow 0.4s ease;}

/*
 * Glasmorphismus via ::before statt direkt auf header —
 * backdrop-filter auf dem header selbst würde eine neue Compositing-Layer
 * erzeugen und den backdrop-filter des Sub-Menüs einschränken.
 * Auf dem Pseudo-Element bleibt der Blur-Effekt isoliert; die Kinder
 * des Headers (Sub-Menu) können weiterhin den Seiteninhalt dahinter filtern.
 */

header::before {content: '';position: absolute;inset: 0;background: linear-gradient(160deg, rgba(255, 255, 255, 0.36) 0%, rgba(255, 255, 255, 0.06) 32%, transparent 58%);backdrop-filter: blur(28px) saturate(220%) brightness(1.06);-webkit-backdrop-filter: blur(28px) saturate(220%) brightness(1.06);pointer-events: none;z-index: 0;opacity: 0;transition: opacity 0.4s ease;}
header::after {content: '';position: absolute;bottom: -1px;left: 0; right: 0;height: 1px;background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.5) 25%, rgba(255, 255, 255, 0.8) 50%, rgba(255, 255, 255, 0.5) 75%, transparent 100%);pointer-events: none;z-index: 1;opacity: 0;transition: opacity 0.4s ease;}
header .wrp {position: relative;z-index: 1;}

header.is-floating {background: rgba(240, 241, 244, 0.1);border-bottom-color: rgba(255, 255, 255, 0.22);box-shadow: inset 0 1.5px 0 0 rgba(255, 255, 255, 0.88), 0 8px 40px rgba(33, 42, 56, 0.07);}
header.is-floating::before {opacity: 1;}
header.is-floating::after  {opacity: 1;}

html.scrolled header.is-floating {background: rgba(240, 241, 244, 0.22);box-shadow: inset 0 1.5px 0 0 rgba(255, 255, 255, 0.9), 0 12px 48px rgba(33, 42, 56, 0.1);}
header .header-grid {display: grid; grid-template-columns: 200px auto auto ;grid-template-rows: auto;justify-items: start; align-items: center; justify-content: space-between;}
header .header-grid .logo {width: 100%;}
header .header-grid .logo a {display: flex;align-items: center;}
header .header-grid .mainnav-toggle {display: none;justify-self: end;}
.mainnav-toggle.off {display: none;}
header .header-grid .btn {margin: 0;}

/* ========================================
   NAVIGATION - DESKTOP
   ======================================== */

/* #mainnav ist nur das Mobile-Offcanvas-Panel — auf Desktop versteckt */
#mainnav {display: none;}
ul.mainnav.desktop li {list-style-type: none; margin-left: 40px;}
ul.mainnav.desktop li:first-child {margin-left: 0;}
ul.mainnav.desktop li a {display: block; color: var(--primary-color); transition: var(--transition); padding: 50px 0; font-size: 20px; font-weight: 600;}
ul.mainnav.desktop li a:hover, ul.mainnav.desktop > li.current-menu-item > a {color: var(--primary-color);transition: var(--transition);}

/* ========================================
   NAVIGATION - DESKTOP SUBMENU
   ======================================== */

@media (min-width: 1025px) {
    ul.mainnav.desktop {display: flex;align-items: center;margin: 0;}
    html.scrolled ul.mainnav.desktop li a {padding: 15px 0;transition: var(--transition);}

    /* Submenu Level 1 — Liquid Glass Panel */
    ul.mainnav.desktop li.menu-item-has-children {position: relative;}
    ul.mainnav.desktop li.menu-item-has-children ul.sub-menu {position: absolute;top: var(--submenu-offset);left: -20px;display: block;height: auto;max-height: 0;overflow: hidden;background: rgba(33, 42, 56, 0.45);backdrop-filter: blur(28px) saturate(180%) brightness(0.96);-webkit-backdrop-filter: blur(28px) saturate(180%) brightness(0.96);border-radius: 16px;box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.55), 0 20px 56px rgba(33, 42, 56, 0.28), 0 4px 16px rgba(33, 42, 56, 0.14);padding: 0;}
    .scrolled ul.mainnav.desktop li.menu-item-has-children ul.sub-menu {top: 65px;}
    ul.mainnav.desktop li.menu-item-has-children:hover > ul.sub-menu {max-height: 674px;overflow: visible;margin-top: 10px;padding: 6px;}
    ul.mainnav.desktop li.menu-item-has-children ul.sub-menu li {min-width: 220px;background: transparent;border-bottom: none;border-radius: 10px;padding: 0;margin: 0;height: auto;transition: background 0.2s ease;list-style: none; width: 100%;}
    ul.mainnav.desktop li.menu-item-has-children ul.sub-menu li:hover {background: rgba(255, 255, 255, 0.18);}
    ul.mainnav.desktop li.menu-item-has-children ul.sub-menu li.current-menu-item {background: rgba(255, 255, 255, 0.95);}
    ul.mainnav.desktop li.menu-item-has-children ul.sub-menu li a {display: block;color: rgba(255, 255, 255, 0.92);font-size: 15px;font-weight: 500;padding: 11px 16px;white-space: nowrap;transition: color 0.2s ease;border-radius: 10px;}
    ul.mainnav.desktop li.menu-item-has-children ul.sub-menu li:hover a {color: #fff;}
    ul.mainnav.desktop li.menu-item-has-children ul.sub-menu li.current-menu-item a {color: var(--primary-color);}

    ul.mainnav.desktop li.menu-item-has-children ul.sub-menu li.menu-item-has-children ul.sub-menu {position: absolute;left: calc(100% + 8px);top: -6px;overflow: hidden;max-height: 0;margin-top: 0;padding: 0;}
    ul.mainnav.desktop li.menu-item-has-children ul.sub-menu li.menu-item-has-children:hover ul.sub-menu {max-height: 400px;overflow: visible;padding: 6px;}
    ul.mainnav.desktop li.menu-item-has-children ul.sub-menu li.menu-item-has-children ul.sub-menu li {background: transparent; min-width: 200px;}
    ul.mainnav.desktop li.menu-item-has-children ul.sub-menu li.menu-item-has-children ul.sub-menu li a {color: rgba(255, 255, 255, 0.85);}
    ul.mainnav.desktop li.menu-item-has-children ul.sub-menu li.menu-item-has-children ul.sub-menu li:hover a {color: #fff;}
}

/* ========================================
   NAVIGATION - MOBILE OFFCANVAS
   ======================================== */

@media (max-width: 1024px) {

    /* Desktop-Nav aus, Header-Grid auf 2 Spalten reduzieren */
    ul.mainnav.desktop {display: none;}
    /* Header-Grid: nur Logo + Kontakt-Button sichtbar */
    header .header-grid {grid-template-columns: auto auto;}

    /* ---- Hamburger Toggle ---- */
    .mainnav-toggle.off {display: block;position: absolute;top: 50%;right: 130px;transform: translateY(-50%);z-index: 10;}
    .mainnav-toggle.off.active {display: none;}
    .btn-mainnav-toggle {display: flex; align-items: center; justify-content: center;width: 44px; height: 44px; border-radius: 50%;background: var(--primary-color);border: none; cursor: pointer; padding: 0;position: relative;}
    .btn-mainnav-toggle span {display: block;width: 20px;height: 2px;background: #fff;border-radius: 2px;position: absolute;left: 50%;transform: translateX(-50%);transition: top 0.22s 0.2s ease, transform 0.22s ease, opacity 0.15s ease;}
    .btn-mainnav-toggle span:nth-child(1) {top: 15px;}
    .btn-mainnav-toggle span:nth-child(2) {top: 21px;}
    .btn-mainnav-toggle span:nth-child(3) {top: 27px;}
    .btn-mainnav-toggle.active span {transition: top 0.22s ease, transform 0.22s 0.2s ease, opacity 0.15s ease;}
    .btn-mainnav-toggle.active span:nth-child(1) {top: 21px; transform: translateX(-50%) rotate(45deg);}
    .btn-mainnav-toggle.active span:nth-child(2) {opacity: 0; transform: translateX(-50%) scaleX(0);}
    .btn-mainnav-toggle.active span:nth-child(3) {top: 21px; transform: translateX(-50%) rotate(-45deg);}

    #mainnav {display: flex; flex-direction: column;position: fixed; top: 0; right: 0; bottom: 0;width: min(380px, 100vw);transform: translateX(103%);transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);z-index: 9999;background: rgba(20, 26, 40, 0.85);backdrop-filter: blur(36px) saturate(180%);-webkit-backdrop-filter: blur(36px) saturate(180%);border-left: 1px solid rgba(255, 255, 255, 0.08);box-shadow: -20px 0 80px rgba(0, 0, 0, 0.35);overflow: hidden;}
    #mainnav.active {transform: translateX(0);}

    /* ---- Panel-Kopf: Logo + Schließen ---- */
    #mainnav .head {display: flex;align-items: center;justify-content: space-between;padding: 22px 24px;flex-shrink: 0;border-bottom: 1px solid rgba(255, 255, 255, 0.08);}
    #mainnav .head .nav-logo {display: flex;align-items: center; }
    #mainnav .head .nav-logo svg {height: 26px;width: auto;display: block;filter: brightness(0) invert(1);}
    #mainnav .head .nav-close {width: 40px;height: 40px;border-radius: 50%;background: rgba(255, 255, 255, 0.07);border: 1px solid rgba(255, 255, 255, 0.12);color: rgba(255, 255, 255, 0.7);cursor: pointer;display: flex;align-items: center;justify-content: center;transition: background 0.2s ease, color 0.2s ease;flex-shrink: 0;}
    #mainnav .head .nav-close:hover {background: rgba(255, 255, 255, 0.15); color: #fff;}

    /* ---- Scrollbarer Körper ---- */
    #mainnav .nav-body {flex: 1;overflow-y: auto;padding: 14px;scrollbar-width: thin;scrollbar-color: rgba(255, 255, 255, 0.10) transparent;}
    #mainnav .nav-body::-webkit-scrollbar {width: 3px;}
    #mainnav .nav-body::-webkit-scrollbar-thumb {background: rgba(255, 255, 255, 0.10);border-radius: 2px;}

    /* ---- Navigationslinks Top-Level ---- */
    #mainnav ul.mainnav {list-style: none;margin: 0;padding: 0;}
    #mainnav ul.mainnav > li {list-style: none;margin: 2px 0;padding: 0;position: relative;}
    #mainnav ul.mainnav > li > a {display: block;color: rgba(255, 255, 255, 0.78);font-size: 17px;font-weight: 600;padding: 13px 16px;border-radius: 10px;text-decoration: none;transition: background 0.2s ease, color 0.2s ease;}
    #mainnav ul.mainnav > li.menu-item-has-children > a {padding-right: 54px;}
    #mainnav ul.mainnav > li > a:hover, #mainnav ul.mainnav > li.current-menu-item > a, #mainnav ul.mainnav > li.current-menu-ancestor > a {background: rgba(255, 255, 255, 0.09);color: #fff;}

    /* ---- Chevron-Button für Submenü ---- */
    .nav-chevron {position: absolute;top: 7px;right: 6px;width: 36px;height: 36px;border-radius: 8px;background: rgba(255, 255, 255, 0.06);border: none;color: rgba(255, 255, 255, 0.50);cursor: pointer;display: flex;align-items: center;justify-content: center;transition: background 0.2s ease, color 0.2s ease;}
    .nav-chevron svg {width: 15px;height: 15px;transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);pointer-events: none;}
    .nav-chevron:hover {background: rgba(255, 255, 255, 0.12);color: rgba(255, 255, 255, 0.9);}
    li.is-open > .nav-chevron {background: rgba(255, 255, 255, 0.12);color: #fff;}
    li.is-open > .nav-chevron svg {transform: rotate(180deg);}

    /* ---- Submenü Level 1 ---- */
    #mainnav ul.mainnav ul.sub-menu {list-style: none;margin: 2px 0 4px 0;padding: 0 0 0 8px;max-height: 0;overflow: hidden;transition: max-height 0.38s cubic-bezier(0.4, 0, 0.2, 1);}
    #mainnav ul.mainnav li.is-open > ul.sub-menu {max-height: 800px;}
    #mainnav ul.mainnav ul.sub-menu > li {list-style: none;margin: 1px 0;padding: 0;position: relative;}
    #mainnav ul.mainnav ul.sub-menu > li > a {display: block;color: rgba(255, 255, 255, 0.52);font-size: 15px;font-weight: 500;padding: 10px 14px;border-radius: 8px;text-decoration: none;transition: background 0.2s ease, color 0.2s ease;}
    #mainnav ul.mainnav ul.sub-menu > li.menu-item-has-children > a {padding-right: 54px;}
    #mainnav ul.mainnav ul.sub-menu > li > a:hover, #mainnav ul.mainnav ul.sub-menu > li.current-menu-item > a {background: rgba(255, 255, 255, 0.07);color: rgba(255, 255, 255, 0.90);}

    /* ---- Submenü Level 2 ---- */
    #mainnav ul.mainnav ul.sub-menu ul.sub-menu {padding-left: 12px;}
    #mainnav ul.mainnav ul.sub-menu ul.sub-menu > li > a {font-size: 14px;color: rgba(255, 255, 255, 0.38);padding: 8px 12px;}
    #mainnav ul.mainnav ul.sub-menu ul.sub-menu > li > a:hover {color: rgba(255, 255, 255, 0.75);}

    /* ---- Kontakt-Footer ---- */
    #mainnav address.contact {padding: 18px 24px;flex-shrink: 0;border-top: 1px solid rgba(255, 255, 255, 0.08);font-size: 13px;line-height: 22px;color: rgba(255, 255, 255, 0.38);}
    #mainnav address.contact strong {display: block;color: rgba(255, 255, 255, 0.62);margin-bottom: 4px;font-size: 13px;}
    #mainnav address.contact a {color: rgba(255, 255, 255, 0.40);text-decoration: none;transition: color 0.2s ease;}
    #mainnav address.contact a:hover {color: rgba(255, 255, 255, 0.82);}

    /* ---- Overlay ---- */
    #mainnav-overlay {position: fixed;top: 0;right: 0;left: 0;bottom: 0;background: rgba(8, 12, 22, 0.60);backdrop-filter: blur(4px) saturate(120%);-webkit-backdrop-filter: blur(4px) saturate(120%);opacity: 0;z-index: -5;visibility: hidden;transition: opacity 0.35s ease, visibility 0.35s ease;}
    #mainnav-overlay.active {opacity: 1;z-index: 9998;visibility: visible;}

    /* ---- Body-Scroll sperren ---- */
    body.nav-open {overflow: hidden;}
}

/* ========================================
   STAGE / HERO SECTIONS
   ======================================== */

.stage {aspect-ratio: 3/1;width: 100%;position: relative;margin-top: 154px;}
.stage video {width: 100%; aspect-ratio: 2.39/1; object-fit: cover; border-radius: var(--border-radius);}
.stage .stage-content {display: flex; justify-content: space-between; align-items: flex-start; padding: 75px 0;}
.stage .stage-content .stage-text {flex-basis: 45%;}
.stage .stage-content .btn {margin: 0;}

/* Fallback für Browser ohne aspect-ratio Support */
@supports not (aspect-ratio: 3/1) {
    .stage {padding-top: 33.33%;}
}

.stage img {width: 100%;height: 100%;object-fit: cover;object-position: center; border-radius: var(--border-radius);}

@supports not (aspect-ratio: 3/.7) {
    .stage.subpage {padding-top: 23.33%;}
}

.stage.frontpage {aspect-ratio: auto;}

/* ========================================
   PAGE LAYOUT
   ======================================== */

main.withsidebar .page-build {display: grid;grid-template-columns: 70% 25%;align-items: flex-start;justify-content: space-between;max-width: var(--wrp-width);width: 90%;margin: 0 auto;}
main.withsidebar .content .wrp {width: 100%;}

/* ========================================
   CONTENT BLOCKS
   ======================================== */

/* Text Block */
.text.mehrspaltig .text-grid {display: grid; grid-template-columns: 1fr 1fr; gap: 50px;}
.text.verlaufshintergrund {padding: 150px; background: var(--gradient); color: var(--blue-shade-01); border-radius: var(--border-radius); position: relative; box-sizing: border-box; --vhg-before-x: 0%; --vhg-after-x: 0%;}
.text.verlaufshintergrund h2 {color: var(--blue-shade-01);}
.text.verlaufshintergrund:before {content: ''; position: absolute; width: 50%; height: 100%; bottom: -70px; right: -10%; background-image: url(assets/icons/lines.svg); background-repeat: no-repeat; background-position: center; background-size: contain; opacity: 0.5; transform: rotate(-25deg) translateX(var(--vhg-before-x));}
.text.verlaufshintergrund:after {content: ''; position: absolute; width: 50%; height: 100%; bottom: -70px; left: -10%; background-image: url(assets/icons/lines.svg); background-repeat: no-repeat; background-position: center; background-size: contain; opacity: 0.5; transform: rotate(25deg) scaleX(-1) translateX(var(--vhg-after-x));}


.text.align-center {text-align: center;}

.inner-text-icon {width: 35px; height: auto; margin: 0 8px -5px 8px;}

/* Text + Image Block */
.textbild .wrp {display: grid;align-items: center;justify-content: space-between;box-sizing: border-box;}
.textbild .text {border-radius: 5px 0 0 5px;box-sizing: border-box;}
.textbild .bild {width: 100%;height: 100%; border-radius: var(--border-radius); overflow: hidden;}
.textbild .bild img {width: 100%;height: 100%;object-fit: cover;}

/* Text + Image Block: Freisteller-Variante */

.textbild.freisteller-bloecke .bild {display: block;padding: 0; width: 120%; margin-left: -20%;}
.freisteller-grid {display: grid;grid-template-columns: 1fr 1fr;gap: 50px;width: 100%;height: 100%;}
.freisteller-block {position: relative; aspect-ratio: 1 / 1; display: flex; align-items: center; justify-content: center; border-radius: var(--border-radius);}

.freisteller-block:nth-child(1) {background: var(--blue-shade-03); align-self: flex-end; aspect-ratio: 1/.75;}
.freisteller-block:nth-child(2) {background: var(--blue-shade-04); border-radius: var(--border-radius) var(--border-radius) 0 var(--border-radius); clip-path: inset(-250px 0 0 0 round var(--border-radius) var(--border-radius) 0 var(--border-radius));}
.freisteller-block:nth-child(3) {background: var(--blue-shade-01); align-self: flex-start; aspect-ratio: 1/.75; border-radius: var(--border-radius) 0 var(--border-radius) var(--border-radius);}
.freisteller-block:nth-child(4) {background: var(--blue-shade-02); align-self: flex-start; height: 120%; width: 85%; border-radius: 0 var(--border-radius) var(--border-radius) var(--border-radius); position: relative;}
.freisteller-block:nth-child(4):after {content: ''; position: absolute; width: 130%; height: 100%; bottom: 0; left: -20%; background-image: url(assets/icons/lines.svg); background-repeat: no-repeat; background-position: center; background-size: contain; opacity: 0.75;}

.textbild.freisteller-bloecke .bild .freisteller-block img {position: absolute; bottom: -10px; right: -10px; height: 120%; width: auto; object-fit: contain; display: block; z-index: 2; pointer-events: none;}
.textbild.freisteller-bloecke .bild .freisteller-block:nth-child(1) img {right: 11%; height: 125%;}
.textbild.freisteller-bloecke .bild .freisteller-block:nth-child(3) img {right: -10%; bottom: -10%; height: 125%;}

.freisteller-block {overflow: visible;}
.freisteller-grid {overflow: visible;}
.textbild.freisteller-bloecke .bild {overflow: visible;}

.freisteller-block:hover {z-index: 3;}
.freisteller-block .plus-btn {position: absolute;bottom: 25px; left: 25px; width: 35px; height: 35px; border-radius: 50%; background: var(--blue-shade-01); display: flex;align-items: center;justify-content: center;font-size: 20px;line-height: 1; color: var(--cta); text-decoration: none;box-shadow: var(--box-shadow);transition: var(--transition);}
.freisteller-block .plus-btn:hover {background: #222;color: #fff;}

/* Textbild – Leistungsliste */

.tb-leistungen {display: grid; grid-template-columns: 1fr 1fr; gap: 50px; list-style: none; padding: 0; margin: 28px 0 0;}
.tb-leistung {display: flex; align-items: center; gap: 12px; font-size: 16px; line-height: 1.4; margin: 0; background: var(--blue-shade-02);color: var(--primary-color); padding: 25px 15px 15px 25px; border-radius: 25px; position: relative;}
.tb-leistung p {margin-bottom: 18px;}
.tb-leistung__icon {flex-shrink: 0; width: 40px; height: 40px; color: var(--blue-shade-03); display: block; position: absolute;top: -15px; left: -15px;}
.tb-leistung__icon svg {width: 100%; height: 100%; display: block;}
.tb-leistung__icon svg path {stroke: var(--cta);}

/* Text + Bild Slider Block */

.textbildslider {padding: 100px 0; background: var(--primary-color); border-radius: var(--border-radius); position: relative; overflow: hidden;}
.textbildslider .wrp {z-index: 1;}
.textbildslider .text-grid {display: grid; grid-template-columns: 1fr 1fr; gap: 50px; margin-bottom: 75px;}
.textbildslider .text-grid .text-text {margin-top: 35px;}

.textbildslider .text-grid .text-headline h5 {color: var(--blue-shade-03);}

.textbildslider .slider-tabs {display: flex;flex-wrap: wrap;gap: 8px; margin-bottom: 75px;}
.textbildslider .slider-tabs .btn {margin-top: 0;cursor: pointer;border: none;font-family: inherit; font-size: 14px; background: #fff; color: var(--primary-color);}
.textbildslider .slider-tabs .btn.aktiv {background: var(--cta);color: #fff;}
.textbildslider .slider-tabs .btn:not(.aktiv):hover {background: var(--cta);color: #fff;}
.textbildslider .slider-panel {display: none;align-items: center;justify-content: space-between;box-sizing: border-box;gap: 5%;}
.textbildslider .slider-panel.aktiv {display: grid;}
.textbildslider .slider-panel .text {box-sizing: border-box;}
.textbildslider .slider-panel .bild {width: 100%;height: 100%;}
.textbildslider .slider-panel .bild img {width: 100%;height: 100%;object-fit: cover;border-radius: var(--border-radius);}

/* Mobile Nav — desktop: versteckt */
.slider-mobile-nav {display: none;}

/* Teasercards */
/* ========================================
   TEASERCARDS
   ======================================== */

/* Wrapper */
.teasercards {position: relative;}
.teasercards .wrp {position: relative;overflow: visible;}

/* Grid */
.teasercards .cards.no-carousel {display: grid;gap: 36px;margin: 0;}
.teasercards .cards.no-carousel li {list-style-type: none;margin: 0;}

/* Carousel */
.teasercards .splide {overflow: visible;position: relative;}
.teasercards .splide .splide__track {overflow: hidden;}
.teasercards .splide ul.cards {display: flex;gap: 0;}
.teasercards .splide__arrow--prev {left: -70px;}
.teasercards .splide__arrow--next {right: -70px;}

/* Card */
.teasercard-item {background: #fff;border-radius: 30px;overflow: hidden;display: flex;flex-direction: column;text-decoration: none;color: inherit;box-shadow: 0 4px 24px rgba(33,42,56,0.07);transition: transform 0.45s cubic-bezier(0.22,1,0.36,1), box-shadow 0.45s ease;height: 100%;}
.teasercard-item:hover {transform: translateY(-8px);box-shadow: 0 28px 72px rgba(33,42,56,0.14);}

/* Bild */
.teasercard-item .img-wrp {width: 100%;aspect-ratio: 16/9;overflow: hidden;flex-shrink: 0;display: block;}
.teasercard-item .img-wrp img {width: 100%;height: 100%;object-fit: cover;display: block;transition: transform 0.7s cubic-bezier(0.22,1,0.36,1);}
.teasercard-item:hover .img-wrp img {transform: scale(1.05);}

@supports not (aspect-ratio: 16/9) {
    .teasercard-item .img-wrp {padding-top: 56.25%;position: relative;}
    .teasercard-item .img-wrp img {position: absolute;top: 0;left: 0;}
}

/* Content */
.teasercard-item .teasercard-content {display: flex;flex-direction: column;flex-grow: 1;padding: 28px 32px 32px;}
.teasercard-item .teasercard-content h3 {font-size: 20px;font-weight: 600;color: var(--primary-color);line-height: 1.4;margin-bottom: 12px;}
.teasercard-item .teasercard-content p {font-size: 16px;line-height: 1.65;color: var(--text-color);margin-bottom: 0;flex-grow: 1;display: -webkit-box;-webkit-line-clamp: 3;-webkit-box-orient: vertical;overflow: hidden;}

/* Footer */
.teasercard-footer {display: flex;align-items: center;justify-content: space-between;margin-top: 24px;gap: 16px;}
.teasercard-item .btn {background: none;color: var(--primary-color);padding: 20px 0 0 0;margin: 0;font-size: 15px;font-weight: 700;border-radius: 0;transition: color var(--transition);}
.teasercard-item:hover .btn {background: none;color: var(--cta);}

/* Pfeil-Button */
.teasercard-arrow {flex-shrink: 0;width: 46px;height: 46px;border-radius: 50%;background: var(--primary-color);color: #fff;display: flex;align-items: center;justify-content: center;transition: background 0.3s ease, transform 0.4s cubic-bezier(0.34,1.56,0.64,1);}
.teasercard-arrow svg {width: 19px;height: 19px;display: block;}
.teasercard-item:hover .teasercard-arrow {background: var(--cta);transform: rotate(45deg);}

/* ========================================
   ZUSAMMENSPIEL LEISTUNGEN
   ======================================== */

/* Überschrift über den Karten */

.zusammenspiel-leistungen .zl-heading {margin-bottom: 60px; display: grid; grid-template-columns: 1fr 1fr; gap: 35px;}
.zusammenspiel-leistungen .zl-heading > *:last-child {margin-bottom: 0;}

/* WYSIWYG-Inhalt in der Karte */

.teasercard-item .zl-excerpt {font-size: 16px;line-height: 1.65;color: var(--text-color);flex-grow: 1;display: -webkit-box;-webkit-line-clamp: 3;-webkit-box-orient: vertical;overflow: hidden;}
.teasercard-item .zl-excerpt p {font-size: inherit;line-height: inherit;margin-bottom: 0;}
.teasercard-item .zl-excerpt > *:last-child {margin-bottom: 0;}

/* Image Block */
.image img {display: block;width: 100%;height: auto;}
.bildtrenner {width: 100%;aspect-ratio: 3/1;overflow: hidden;position: relative;}

@supports not (aspect-ratio: 3/1) {
    .bildtrenner {padding-top: 33.33%;}
}

.bildtrenner img {width: 100%;height: 100%;object-fit: cover;object-position: center;}
.bildtrenner .wrp {position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);z-index: 2;}

/* ========================================
   GALLERY COMPONENT
   ======================================== */

/* Gemeinsame Overlay-Styles für Galerie und Video */
.gallery-overlay {width: 100%;position: absolute;height: 100%;top: 0;left: 0;right: 0;bottom: 0;background: var(--secondary-color);opacity: 0;transition: var(--transition);}
.gallery-overlay .icon-wrp {position: absolute;top: 50%;left: 50%;width: 45px;height: 45px;transform: translate(-50%, -50%);}
.gallery-overlay .icon-wrp svg {width: 100%;height: 100%;transform: scale(0);transition: var(--transition);}
.gallery-overlay .icon-wrp svg path {fill: var(--bg-white);}

/* Image Gallery */
.gallery .glightbox-gallery:not(.masonry) {display: grid;gap: 50px;margin-bottom: 0;}
.gallery .glightbox-gallery li {list-style-type: none;margin: 0 0 25px 0;border-radius: 5px;overflow: hidden;aspect-ratio: 1;}

@supports not (aspect-ratio: 1) {
    .gallery .glightbox-gallery li {padding-top: 100%;position: relative;}
    .gallery .glightbox-gallery li a {position: absolute;top: 0;left: 0;width: 100%;}
}

.gallery .glightbox-gallery:not(.masonry) li {margin: 0;}
.gallery .glightbox-gallery li a {position: relative;display: block;overflow: hidden;height: 100%;}
.gallery .glightbox-gallery li a .overlay {width: 100%;position: absolute;height: 100%;top: 0;left: 0;right: 0;bottom: 0;background: var(--secondary-color);opacity: 0;transition: var(--transition);}
.gallery .glightbox-gallery li a:hover .overlay {opacity: 0.6;transition: var(--transition);}
.gallery .glightbox-gallery li a .overlay .icon-wrp {position: absolute;top: 50%;left: 50%;width: 45px;height: 45px;transform: translate(-50%, -50%);}
.gallery .glightbox-gallery li a .overlay .icon-wrp svg {width: 100%;height: 100%;transform: scale(0);transition: var(--transition);}
.gallery .glightbox-gallery li a .overlay .icon-wrp svg path {fill: var(--bg-white);}
.gallery .glightbox-gallery li a:hover .overlay .icon-wrp svg {transform: scale(1);transition: var(--transition);}
.gallery .glightbox-gallery li img {width: 100%;height: 100%;object-fit: cover;}
.gallery .glightbox-gallery.masonry {gap: 25px;columns: 4;margin: 0 auto;}

/* Video Gallery */
.gallery .video-gallery-grid {display: grid;grid-column-gap: 50px;grid-row-gap: 50px;}
.gallery .video-gallery-grid .video-gallery-item {height: 220px;width: 100%;display: block;position: relative;overflow: hidden;}
.gallery .video-gallery-grid .video-gallery-item .overlay {width: 100%;position: absolute;height: 100%;top: 0;left: 0;right: 0;bottom: 0;background: var(--secondary-color);opacity: 0;transition: var(--transition);z-index: 4;}
.gallery .video-gallery-grid .video-gallery-item:hover .overlay {opacity: 0.6;transition: var(--transition);}
.gallery .video-gallery-grid .video-gallery-item .overlay .icon-wrp {position: absolute;top: 50%;left: 50%;width: 45px;height: 45px;transform: translate(-50%, -50%);}
.gallery .video-gallery-grid .video-gallery-item .overlay .icon-wrp svg {width: 100%;height: 100%;transform: scale(0);transition: var(--transition);}
.gallery .video-gallery-grid .video-gallery-item .overlay .icon-wrp svg path {fill: var(--bg-white);}
.gallery .video-gallery-grid .video-gallery-item:hover .overlay .icon-wrp svg {transform: scale(1);transition: var(--transition);}
.gallery .video-gallery-grid .video-gallery-item img {height: 100%;width: 100%;object-fit: cover;object-position: center;transform: scale(1.2);}

/* ========================================
   EMBED / VIDEO
   ======================================== */

.embed .respo-video {position: relative;height: 0;overflow: hidden; padding-bottom: 56.25%;}
.embed .respo-video iframe {position: absolute;top: 0;left: 0;width: 100%;height: 100%;}
.embed .respo-video ._brlbs-cb-youtube {margin-bottom: -56.25%;}

/* ========================================
   TEASER + FREISTELLER
   ======================================== */

.teaser-freisteller .teaser-freisteller-block {border-radius: var(--border-radius); position: relative; background: #848EA3; background: var(--gradient); padding: 100px 50px; --tf-after-y: 0px;}
.teaser-freisteller .teaser-freisteller-block .stage-content {padding-right: 50%; box-sizing: border-box; position: relative; z-index: 2;}
.teaser-freisteller .teaser-freisteller-block .freisteller {position: absolute; bottom: 0; right: 0; width: 55%; height: auto; z-index: 1;}
.teaser-freisteller .teaser-freisteller-block:after {content: '';position: absolute;width: 50%;height: 150%;top: 8%;right: -8%;background-image: url(assets/icons/circles.svg);background-repeat: no-repeat;background-position: center;background-size: contain;transform: rotate(-5deg) translateY(var(--tf-after-y));}

/* ========================================
   USP
   ======================================== */

.usp .usp-grid {display: grid;grid-template-columns: repeat(3, 1fr);grid-column-gap: 50px;grid-row-gap: 50px;}
.usp .usp-grid .usp-item {border-radius: var(--border-radius); text-align: center; position: relative; overflow: hidden;}
.usp .usp-grid .usp-item:after {content: ''; position: absolute; width: 130%; height: 100%; bottom: 0; left: -20%; background-image: url(assets/icons/lines.svg); background-repeat: no-repeat; background-position: center; background-size: contain; opacity: 0.25;}
.usp .usp-grid .usp-item .usp-text {padding: 50px; min-height: 285px; box-sizing: border-box;}
.usp .usp-grid .usp-item .usp-text p {border-radius: var(--border-radius); font-size: 20px; line-height: 26px;}
.usp .usp-grid .usp-item .usp-text h3 {max-width: 15ch; margin: 0 auto 25px auto;}

.usp .usp-grid .usp-item .usp-icon {width: 100%; height: 200px; padding: 75px 0;}
.usp .usp-grid .usp-item .usp-icon svg {height: 100%;}

.usp .usp-grid .usp-item.item-left {background: var(--blue-shade-01);}
.usp .usp-grid .usp-item.item-center {background: var(--blue-shade-03);}
.usp .usp-grid .usp-item.item-center .usp-icon svg {margin-left: -40px;}
.usp .usp-grid .usp-item.item-right {background: var(--blue-shade-02);}

/* ========================================
   WORKFLOW
   ======================================== */

.workflow {border-radius: var(--border-radius); background: var(--blue-shade-01); padding: 100px 0; position: relative;}
.workflow .freisteller {position: absolute; bottom: 0; left: 10%; height: 55%; width: auto; z-index: 1;}
.workflow .backdrop-lines {position: absolute; bottom: 0; right: -2%; height: 100%; width: auto;}
.workflow .backdrop-lines path {stroke: #fff;}
.workflow-text-grid {display: grid;grid-template-columns: 44% 50%; justify-content: space-between; grid-column-gap: 50px;grid-row-gap: 50px; position: relative; z-index: 1;}
.workflow-text-grid .workflow-grid {display: grid; grid-template-columns: 1fr 1fr; grid-column-gap: 20px; grid-row-gap: 20px; margin-top: 135px;}
.workflow-text-grid .workflow-grid.workflow-grid-column {grid-template-columns: 100%;}
.workflow-text-grid .workflow-grid .item-workflow {border-radius: 25px; background: #fff; font-size: 14px; line-height: 20px; padding: 20px;}
.workflow-text-grid .workflow-grid .item-workflow .icon-subline {display: flex; align-items: center; margin-bottom: 20px;}
.workflow-text-grid .workflow-grid .item-workflow .icon-subline svg {width: 50px; height: 50px; margin-right: 10px;}

.workflow-text-grid .workflow-grid.leistungen {grid-column-gap: 40px;grid-row-gap: 40px;}
.workflow-text-grid .workflow-grid.leistungen .item-workflow .icon-subline svg {width: 40px; height: 40px; position: absolute; top: -20px; left: -20px;}


/* ========================================
   ANSPRECHPARTNER
   ======================================== */

.ansprechpartner {border-radius: var(--border-radius);padding: 100px 0;position: relative;--ap-after-y: 0px;background: linear-gradient(304deg, rgba(132,142,163,1) 0%, rgba(33,42,56,1) 100%) padding-box, conic-gradient(from var(--border-angle), rgba(132, 142, 163, 0.2)  78%, rgba(242, 146,  13, 0.0)  82%, #F2920D                   86%, rgba(255, 210, 120, 0.9)  90%, #F2920D                   94%, rgba(132, 142, 163, 0.2)) border-box;border: 2px solid transparent;animation: ansprechpartner-border 7s linear infinite;}
.ansprechpartner .freisteller {position: absolute; bottom: 0; right: 18%; height: 80%; width: auto; z-index: 1;}
.ansprechpartner .freisteller.scnd-freisteller {position: absolute; bottom: 0; right: 5%; height: 75%; width: auto;}
.ansprechpartner-text-grid {display: grid;grid-template-columns: 55% 40%; justify-content: space-between; grid-column-gap: 50px;grid-row-gap: 50px;}

.contact-btns {display: flex; gap: 35px;}
.contact-btns a.btn {display: flex; align-items: center; gap: 15px; padding: 15px;}
.contact-btns a .icon-wrp {display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50px; background: var(--blue-shade-04);}
.contact-btns a .icon-wrp svg {width: 25px; height: 25px;}
.contact-btns a .icon-wrp svg path {fill: #fff;}

.ansprechpartner:after {content: '';position: absolute;width: 50%;height: 150%;top: 0; right: -10%;background-image: url(assets/icons/circles.svg);background-repeat: no-repeat;background-position: center;background-size: contain;transform: rotate(-5deg) translateY(var(--ap-after-y));}

/* ========================================
   ACCORDION
   ======================================== */

.accordion .accordion-item {border-bottom: 1px solid var(--blue-shade-02);}
.accordion .accordion-item:last-child {border-bottom: none;}
.accordion .accordion-head {width: 100%;display: flex;justify-content: space-between;align-items: center;gap: 32px;padding: 38px 0;background: none;border: none;cursor: pointer;text-align: left;font-family: var(--font-family);}
.accordion .accordion-title {font-size: 22px;font-weight: 600;color: var(--primary-color);line-height: 1.35;transition: color var(--transition);}
.accordion .accordion-item.is-open .accordion-title {color: var(--primary-color);}
.accordion .accordion-icon {flex-shrink: 0;width: 46px;height: 46px;background: var(--primary-color);border-radius: 50%;display: flex;align-items: center;justify-content: center;color: var(--text-on-dark);transition: background 0.35s ease;}
.accordion .accordion-icon svg {width: 20px;height: 20px;display: block;}
.accordion .accordion-item.is-open .accordion-icon {background: var(--cta);}
.accordion .accordion-content {overflow: hidden;}
.accordion .accordion-content-inner {padding-bottom: 38px;font-size: 18px;line-height: 30px;color: var(--text-color);}
.accordion .accordion-content-inner p {padding-right: 20%;}
.accordion .accordion-content-inner p:last-child {margin-bottom: 0;}

/* ========================================
   MODAL CARDS
   ======================================== */

/* Grid */
.mc-grid {display: grid;grid-template-columns: repeat(3, 1fr);gap: 40px;}

/* Karte */
.mc-card {position: relative;background: #fff;border-radius: 15px;overflow: hidden;border: none;cursor: pointer;text-align: left;padding: 0;display: flex;flex-direction: column;width: 100%;box-shadow: 0 4px 24px rgba(33,42,56,0.07);transition: transform 0.45s cubic-bezier(0.22,1,0.36,1), box-shadow 0.45s ease;}
.mc-card:hover {transform: translateY(-8px);box-shadow: 0 28px 72px rgba(33,42,56,0.14);}

/* Bild */
.mc-card__img {aspect-ratio: 16 / 9;overflow: hidden;flex-shrink: 0;}
.mc-card__img img {width: 100%;height: 100%;object-fit: cover;display: block;transition: transform 0.7s cubic-bezier(0.22,1,0.36,1); object-position: 50% 20%;}
.mc-card:hover .mc-card__img img {transform: scale(1.05);}

/* Footer */
.mc-card__footer {display: flex;align-items: flex-start;gap: 20px;padding: 30px 36px 36px;flex-grow: 1; justify-content: space-between;}
.mc-card__title {font-size: 20px;font-weight: 600;color: var(--primary-color);line-height: 1.4;}

/* Pfeil-Button */
.mc-card__arrow {align-self: flex-end;flex-shrink: 0;width: 46px;height: 46px;border-radius: 50%;background: var(--primary-color);color: #fff;display: flex;align-items: center;justify-content: center;transition: background 0.3s ease, transform 0.4s cubic-bezier(0.34,1.56,0.64,1);}
.mc-card__arrow svg {width: 19px;height: 19px;display: block;}
.mc-card:hover .mc-card__arrow {background: var(--cta);transform: rotate(45deg);}

/* Overlay */
.mc-modal {display: none;position: fixed;inset: 0;z-index: 9000;align-items: center;justify-content: center;pointer-events: none;}
.mc-modal.is-open {display: flex;pointer-events: all;}
.mc-modal__bg {position: fixed;inset: 0;background: radial-gradient(125% 125% at 50% 10%, rgba(33,42,56,0.96) 40%, rgba(33,42,56,0.75) 100%);backdrop-filter: blur(10px);-webkit-backdrop-filter: blur(10px);}

/* Dialog */
.mc-modal__dialog {position: fixed;background: #fff;overflow: hidden;box-shadow: 0 40px 120px rgba(0,0,0,0.35);display: flex;flex-direction: column;border-radius: 50px;}
.mc-modal__close {position: absolute;top: 20px;right: 20px;width: 44px;height: 44px;border-radius: 50%;background: var(--primary-color);color: #fff;font-size: 18px;border: none;cursor: pointer;display: flex;align-items: center;justify-content: center;z-index: 2;transition: background 0.2s ease, transform 0.2s ease;}
.mc-modal__close:hover {background: var(--cta);transform: rotate(90deg);}
.mc-modal__img {width: 100%;max-height: 42vh;overflow: hidden;flex-shrink: 0;}
.mc-modal__img img {width: 100%;height: 100%;object-fit: cover;display: block;}
.mc-modal__body {padding: 40px 50px 50px;overflow-y: auto;}
.mc-modal__desc {color: var(--text-color);line-height: 1.75;font-size: clamp(16px, 1.2vw, 20px);}
.mc-modal__desc h1, .mc-modal__desc h2, .mc-modal__desc h3, .mc-modal__desc h4 {color: var(--primary-color);margin-bottom: 12px;margin-top: 28px;}
.mc-modal__desc h2 {font-size: clamp(26px, 4vw, 46px);margin-top: 0;}
.mc-modal__desc p {margin-bottom: 16px;}
.mc-modal__desc ul, .mc-modal__desc ol {padding-left: 24px;margin-bottom: 16px;}

/* Nav-Arrows */
.mc-modal__prev,
.mc-modal__next {position: absolute;top: 20px;width: 44px;height: 44px;border-radius: 50%;background: var(--primary-color);color: #fff;border: none;cursor: pointer;display: flex;align-items: center;justify-content: center;z-index: 2;transition: background 0.2s ease, transform 0.2s ease;}
.mc-modal__prev {left: 20px;}
.mc-modal__next {left: 74px;}
.mc-modal__prev:hover,
.mc-modal__next:hover {background: var(--cta);transform: scale(1.08);}
.mc-modal__prev svg,
.mc-modal__next svg {display: block;flex-shrink: 0;}

/* Body lock */
body.mc-open {overflow: hidden;}

/* Responsive */
@media (max-width: 900px) {
    .mc-grid {grid-template-columns: repeat(2, 1fr);gap: 28px;}
}
@media (max-width: 600px) {
    .mc-grid {grid-template-columns: 1fr;gap: 20px;}
    .mc-card__footer {padding: 24px 28px 28px;}
    .mc-card__title {font-size: 18px;}
    .mc-modal__body {padding: 28px 24px 40px;}
    .mc-modal__dialog {max-height: 90vh;}
}

/* ========================================
   TEAM BLOCK
   ======================================== */

/* Intro-Heading */
.team-block {background: var(--blue-shade-01); padding: 100px 0; border-radius: var(--border-radius);}
.team-heading > *:last-child {margin-bottom: 0;}

/* Grid — auto-responsive: 4→3→2→2 Spalten */
.team-grid {display: grid;grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 50px;}

/* Card */
.team-card {border-radius: 20px;overflow: hidden;background: #fff;box-shadow: 0 4px 28px rgba(33, 42, 56, 0.08);transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.45s ease;cursor: default;}
.team-card:hover {transform: translateY(-7px);box-shadow: 0 28px 72px rgba(33, 42, 56, 0.14);}

/* Medien-Bereich: festes 3/4-Verhältnis, Bild füllt via object-fit */
.team-card__media {position: relative;aspect-ratio: 3 / 4;overflow: hidden;background: var(--blue-shade-01);}

/* Bild füllt den Media-Bereich vollständig — keine Thumbnail-Beschneidung durch WordPress */
.team-card__img-wrap {position: absolute;inset: 0;z-index: 1;}
.team-card__img-wrap img {width: 100%;height: 100%;object-fit: cover;object-position: center top;display: block;transition: opacity 0.55s ease, transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);}
/* Bild ausblenden: Desktop via :hover, Touch via .is-playing-Klasse */
@media (hover: hover) and (pointer: fine) {
    .team-card.has-video:hover .team-card__img-wrap img {opacity: 0;}
}
.team-card.is-playing .team-card__img-wrap img {opacity: 0;}
.team-card:hover .team-card__img-wrap img {transform: scale(1.04);}

/* Video liegt absolut über dem Bild — übernimmt exakt dessen Fläche */
.team-card__video {position: absolute;inset: 0;z-index: 2;width: 100%;height: 100%;object-fit: cover;opacity: 0;transition: opacity 0.55s ease;display: block;pointer-events: none;}
.team-card.is-playing .team-card__video {opacity: 1;}

/* Vignette liegt ebenfalls absolut über Bild/Video */
.team-card__vignette {position: absolute;inset: 0;z-index: 3;background: linear-gradient(to top, rgba(20, 26, 40, 0.50) 0%, rgba(20, 26, 40, 0.10) 40%, transparent 65%);opacity: 0;transition: opacity 0.45s ease;pointer-events: none;}
.team-card:hover .team-card__vignette, .team-card.is-playing .team-card__vignette {opacity: 1;}

/* Play/Pause-Button — Touch-Geräte */
.team-card__play-btn {position: absolute;bottom: 14px;right: 14px;z-index: 5;width: 44px;height: 44px;border-radius: 50%;background: rgba(255, 255, 255, 0.92);color: var(--primary-color);border: none;cursor: pointer;display: flex;align-items: center;justify-content: center;box-shadow: 0 2px 14px rgba(33, 42, 56, 0.25);transition: transform 0.18s ease, background 0.18s ease;opacity: 0;pointer-events: none;}
.team-card__play-btn .icon-pause {display: none;}
.team-card.is-playing .team-card__play-btn .icon-play {display: none;}
.team-card.is-playing .team-card__play-btn .icon-pause {display: block;}
.team-card.is-playing .team-card__play-btn {background: rgba(255, 255, 255, 0.80);}
.team-card__play-btn:active {transform: scale(0.88);}
/* Auf Touch-Geräten einblenden */
@media (hover: none), (pointer: coarse) {
    .team-card.has-video .team-card__play-btn {opacity: 1;pointer-events: auto;}
}

.team-card__info {padding: 20px 24px 24px;border-top: 1px solid rgba(33, 42, 56, 0.06);}
.team-card__role {font-size: 12px;font-weight: 600;color: var(--cta);letter-spacing: 0.07em;text-transform: uppercase;margin-bottom: 5px;line-height: 1.4;}
.team-card__name {font-size: 18px;font-weight: 600;color: var(--primary-color);line-height: 1.3;margin: 0;}

.team-card {will-change: opacity, transform;}

/* ========================================
   BLOG & SIDEBAR
   ======================================== */

main.withsidebar .content .blog-grid {display: grid;grid-template-columns: repeat(3, 1fr);grid-column-gap: 50px;grid-row-gap: 50px;}
main.withsidebar .content .blog-grid .post {width: 100%;}
main.withsidebar .content .blog-grid .post img {width: 100%;height: auto;object-fit: cover;}
article.singlepost .post-image img {width: 100%;height: auto;object-fit: cover;}

/* Sidebar */

main.withsidebar .sidebar {width: 100%;position: -webkit-sticky;position: sticky;top: 150px;background: var(--bg-light-gray);padding: 25px;box-sizing: border-box;}

/* ========================================
   FOOTER
   ======================================== */

footer {border-radius: var(--border-radius); background: var(--blue-shade-02); padding: 100px 0; position: relative;}
footer .footer-grid {display: grid;grid-template-columns: 230px auto auto; font-size: 16px; align-items: flex-start; justify-content: space-between;}
footer .footer-grid .logo {max-width: 230px;}
footer .footer-grid .logo svg {margin-bottom: 50px; display: block; width: 150px;}
footer .footer-grid .logo .social {width: 25px;}
footer .footer-grid .contact, footer .footer-grid .footer-nav {margin-top: 45px;}
footer .footer-grid .contact p {height: 35px; line-height: 35px; margin-bottom: 0;}
footer .footer-grid p {font-size: 16px; line-height: 26px; margin-bottom: 16px;}
footer .footer-grid ul {display: grid; grid-template-columns: repeat(2, 1fr); grid-column-gap: 25px; grid-row-gap: 0; margin-bottom: 0;}
footer .footer-grid ul li {list-style-type: none; margin: 0; height: 35px; line-height: 35px;}

.footer-wordmark {display: block; width: 100%; overflow: visible; margin-top: -100px;}

/* ========================================
   404 ERROR PAGE
   ======================================== */

.error404 .stage {display: none;}
.pageerror {padding: 250px 0 100px 0;text-align: center;}

/* ========================================
   CUSTOM SLIDER
   ======================================== */

.splide {position: relative;overflow: hidden;width: 100%;margin: 0;}
.splide .splide__track {overflow: visible;width: 100%;}
.splide .splide__list, .splide .cards {display: flex;margin: 0;padding: 0;list-style: none;width: 100%;transition: transform 0.5s ease;}
.splide .splide__slide, .splide .cards > * {flex-shrink: 0;margin: 0;list-style: none;}
.splide__arrow {position: absolute;top: 50%;transform: translateY(-50%);width: 50px;height: 50px;border-radius: 50%;background: var(--primary-color);color: #fff;border: none;font-size: 24px;cursor: pointer;z-index: 5;transition: var(--transition);display: flex;align-items: center;justify-content: center;box-shadow: var(--box-shadow);font-weight: 300;}
.splide__arrow:hover {background: var(--cta);transform: translateY(-50%) scale(1.1);transition: var(--transition);}
.splide__arrow--prev {left: -25px;}
.splide__arrow--next {right: -25px;}
.splide__arrow:disabled {opacity: 0.3;cursor: not-allowed;}
.splide .clone {opacity: 1;}

/* ========================================
   CUSTOM LIGHTBOX
   ======================================== */

.custom-lightbox {position: fixed;top: 0;left: 0;right: 0;bottom: 0;z-index: 999999;opacity: 0;visibility: hidden;transition: opacity 0.3s ease, visibility 0.3s ease;pointer-events: none;}
.custom-lightbox.active {opacity: 1;visibility: visible;pointer-events: auto;}
.lightbox-overlay {position: absolute;top: 0;left: 0;right: 0;bottom: 0;background: rgba(0, 0, 0, 0.95);backdrop-filter: blur(10px);-webkit-backdrop-filter: blur(10px);z-index: 1;}
.lightbox-container {position: relative;width: 100%;height: 100%;display: flex;align-items: center;justify-content: center;z-index: 2;}
.lightbox-close {position: fixed;top: 20px;right: 20px;width: 50px;height: 50px;border-radius: 50%;background: rgba(255, 255, 255, 0.2);color: var(--bg-white);border: 2px solid rgba(255, 255, 255, 0.5);font-size: 30px;cursor: pointer;z-index: 999999;transition: var(--transition);display: flex;align-items: center;justify-content: center;line-height: 1;font-weight: 300;}
.lightbox-close:hover {background: var(--primary-color);border-color: var(--primary-color);transform: rotate(90deg);transition: var(--transition);}
.lightbox-prev, .lightbox-next {position: fixed;top: 50%;transform: translateY(-50%);width: 60px;height: 60px;border-radius: 50%;background: rgba(255, 255, 255, 0.2);color: #fff;border: 2px solid rgba(255, 255, 255, 0.5);font-size: 28px;cursor: pointer;z-index: 999999;transition: var(--transition);display: flex;align-items: center;justify-content: center;font-weight: 300;}
.lightbox-prev:hover, .lightbox-next:hover {background: var(--primary-color);border-color: var(--primary-color);transform: translateY(-50%) scale(1.1);transition: var(--transition);}
.lightbox-prev {left: 20px;}
.lightbox-next {right: 20px;}
.lightbox-counter {position: fixed;top: 20px;left: 50%;transform: translateX(-50%);background: rgba(0, 0, 0, 0.8);color: var(--bg-white);padding: 10px 20px;border-radius: 20px;font-size: 16px;z-index: 999999;backdrop-filter: blur(5px);-webkit-backdrop-filter: blur(5px);font-weight: 500;}
.lightbox-image-wrapper {position: relative;max-width: 90%;max-height: 90%;display: flex;align-items: center;justify-content: center;overflow: hidden;}
.lightbox-image {max-width: 100%;max-height: 90vh;object-fit: contain;transition: transform 0.3s ease;cursor: grab;}
.lightbox-image:active {cursor: grabbing;}
.lightbox-video-wrapper {position: relative;width: 90vw;max-width: 1280px;aspect-ratio: 16/9;}
.lightbox-video {position: absolute;top: 0;left: 0;width: 100%;height: 100%;border-radius: 8px;}
.lightbox-zoom-controls {position: fixed;bottom: 30px;left: 50%;transform: translateX(-50%);display: flex;gap: 10px;z-index: 999999;}
.lightbox-zoom-controls button {width: 45px;height: 45px;border-radius: 50%;background: rgba(255, 255, 255, 0.2);color: var(--bg-white);border: 2px solid rgba(255, 255, 255, 0.5);font-size: 20px;cursor: pointer;transition: var(--transition);display: flex;align-items: center;justify-content: center;font-weight: 300;}
.lightbox-zoom-controls button:hover {background: var(--primary-color);border-color: var(--primary-color);transform: scale(1.1);transition: var(--transition);}
.lightbox-thumbnails {position: fixed;bottom: 20px;left: 50%;transform: translateX(-50%);width: 90%;max-width: 900px;z-index: 999999;background: rgba(0, 0, 0, 0.8);padding: 15px;border-radius: 10px;backdrop-filter: blur(10px);-webkit-backdrop-filter: blur(10px);}
.lightbox-thumbnails-wrapper {display: flex;gap: 10px;overflow-x: auto;overflow-y: hidden;scroll-behavior: smooth;padding: 5px 0;scrollbar-width: thin;scrollbar-color: rgba(255, 255, 255, 0.3) transparent;}
.lightbox-thumbnails-wrapper::-webkit-scrollbar {height: 6px;}
.lightbox-thumbnails-wrapper::-webkit-scrollbar-track {background: rgba(255, 255, 255, 0.1);border-radius: 3px;}
.lightbox-thumbnails-wrapper::-webkit-scrollbar-thumb {background: rgba(255, 255, 255, 0.3);border-radius: 3px;}
.lightbox-thumbnails-wrapper::-webkit-scrollbar-thumb:hover {background: rgba(255, 255, 255, 0.5);}
.lightbox-thumbnail {position: relative;flex-shrink: 0;width: 100px;height: 70px;border-radius: 6px;overflow: hidden;cursor: pointer;border: 3px solid transparent;transition: var(--transition);background: rgba(0, 0, 0, 0.5);}
.lightbox-thumbnail:hover {border-color: rgba(255, 255, 255, 0.5);transform: scale(1.05);transition: var(--transition);}
.lightbox-thumbnail.active {border-color: var(--primary-color);transform: scale(1.05);}
.lightbox-thumbnail img {width: 100%;height: 100%;object-fit: cover;}
.lightbox-thumbnail-video-icon {position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);width: 30px;height: 30px;background: rgba(0, 0, 0, 0.7);color: var(--bg-white);display: flex;align-items: center;justify-content: center;border-radius: 50%;font-size: 12px;pointer-events: none;}

/* ========================================
   WPFORMS — Dark Card Style
   ======================================== */

/* --- Dunkle Card --- */
.wpforms-container {width: 100%;background: var(--primary-color) !important;border-radius: 24px !important;padding: 52px 56px 56px !important;position: relative;overflow: hidden;box-shadow: 0 32px 80px rgba(0,0,0,0.30), 0 8px 24px rgba(0,0,0,0.20);}

/* Volle Breite für Textarea, Name-Felder und Fehlerbox */
.wpforms-form .wpforms-field-textarea,
.wpforms-form .wpforms-field-name,
.wpforms-form .wpforms-field-html,
.wpforms-form .wpforms-error-container {grid-column: 1 / -1;}

/* --- Labels --- */
.wpforms-form .wpforms-field-label {font-size: 14px !important;font-weight: 600 !important;color: rgba(240,241,244,0.45) !important; margin-bottom: 8px !important;display: block;line-height: 1 !important;}
.wpforms-form .wpforms-field-required {color: var(--cta) !important;margin-left: 2px;}
.wpforms-form .wpforms-field-description {font-size: 12px !important;color: rgba(240,241,244,0.30) !important;margin-top: 7px;line-height: 1.5;}

/* --- Inputs, Textarea, Select --- */
.wpforms-form input[type="text"],
.wpforms-form input[type="email"],
.wpforms-form input[type="tel"],
.wpforms-form input[type="url"],
.wpforms-form input[type="number"],
.wpforms-form input[type="password"],
.wpforms-form input[type="date"],
.wpforms-form select,
.wpforms-form textarea {width: 100% !important;box-sizing: border-box !important;background: rgba(255,255,255,0.06) !important;border: 1.5px solid rgba(255,255,255,0.10) !important;border-radius: 12px !important;padding: 16px 20px !important;font-family: var(--font-family), sans-serif !important;font-size: 15px !important;line-height: 1.5 !important;color: var(--text-on-dark) !important;transition: border-color 0.22s ease, background 0.22s ease, box-shadow 0.22s ease;outline: none !important;-webkit-appearance: none !important;appearance: none !important;box-shadow: none !important;margin: 0 !important;}

/* --- Focus --- */
.wpforms-form input[type="text"]:focus,
.wpforms-form input[type="email"]:focus,
.wpforms-form input[type="tel"]:focus,
.wpforms-form input[type="url"]:focus,
.wpforms-form input[type="number"]:focus,
.wpforms-form input[type="password"]:focus,
.wpforms-form input[type="date"]:focus,
.wpforms-form select:focus,
.wpforms-form textarea:focus {border-color: var(--cta) !important;background: rgba(255,255,255,0.09) !important;box-shadow: 0 0 0 4px rgba(242,146,13,0.15) !important;outline: none !important;}

/* --- Placeholder --- */
.wpforms-form input::placeholder,
.wpforms-form textarea::placeholder {color: rgba(240,241,244,0.28) !important;opacity: 1;}

/* --- Textarea --- */
.wpforms-form textarea {resize: vertical;min-height: 148px !important;}

/* --- Select: eigener Pfeil --- */
.wpforms-form select {background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='rgba(240,241,244,0.4)' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") !important;background-repeat: no-repeat !important;background-position: right 18px center !important;background-size: 16px !important;padding-right: 50px !important;cursor: pointer;}

/* --- Name-Feld (Vor-/Nachname nebeneinander) --- */
.wpforms-form .wpforms-field-name .wpforms-field-row {display: flex;gap: 16px;}
.wpforms-form .wpforms-field-name .wpforms-field-row > span {flex: 1;min-width: 0;}
.wpforms-form .wpforms-field-name .wpforms-field-row span label {font-size: 10px !important;font-weight: 600 !important;color: rgba(240,241,244,0.35) !important;letter-spacing: 0.08em !important;text-transform: uppercase !important;margin-top: 7px;display: block;}

/* --- Checkbox & Radio --- */
.wpforms-form .wpforms-field-checkbox ul,
.wpforms-form .wpforms-field-radio ul {list-style: none !important;margin: 0 !important;padding: 0 !important;display: flex;flex-direction: column;gap: 10px;}
.wpforms-form .wpforms-field-checkbox li,
.wpforms-form .wpforms-field-radio li {display: flex;align-items: center;gap: 10px;}
.wpforms-form .wpforms-field-checkbox input[type="checkbox"],
.wpforms-form .wpforms-field-radio input[type="radio"] {width: 20px !important;height: 20px !important;min-width: 20px;border: 1.5px solid rgba(255,255,255,0.15) !important;background: rgba(255,255,255,0.06) !important;border-radius: 6px !important;cursor: pointer;-webkit-appearance: none !important;appearance: none !important;transition: border-color 0.2s ease, background 0.2s ease;margin: 0 !important;flex-shrink: 0;box-shadow: none !important;}
.wpforms-form .wpforms-field-radio input[type="radio"] {border-radius: 50% !important;}
.wpforms-form .wpforms-field-checkbox input[type="checkbox"]:checked,
.wpforms-form .wpforms-field-radio input[type="radio"]:checked {background: var(--cta) !important;border-color: var(--cta) !important;background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") !important;background-repeat: no-repeat !important;background-position: center !important;}
.wpforms-form .wpforms-field-radio input[type="radio"]:checked {background-image: none !important;box-shadow: inset 0 0 0 4px rgba(240,241,244,0.92) !important;}
.wpforms-form .wpforms-field-checkbox li label,
.wpforms-form .wpforms-field-radio li label {font-size: 15px !important;color: rgba(240,241,244,0.70) !important;font-weight: 400 !important;letter-spacing: 0 !important;text-transform: none !important;cursor: pointer;line-height: 1.4 !important;}

/* --- Fehlerzustände --- */
.wpforms-form .wpforms-has-error input[type="text"],
.wpforms-form .wpforms-has-error input[type="email"],
.wpforms-form .wpforms-has-error input[type="tel"],
.wpforms-form .wpforms-has-error input[type="url"],
.wpforms-form .wpforms-has-error input[type="number"],
.wpforms-form .wpforms-has-error select,
.wpforms-form .wpforms-has-error textarea {border-color: #ef4444 !important;background: rgba(239,68,68,0.08) !important;box-shadow: none !important;}
.wpforms-form label.wpforms-error {font-size: 12px !important;font-weight: 500 !important;color: #f87171 !important;margin-top: 7px;display: block;letter-spacing: 0 !important;text-transform: none !important;}
.wpforms-form .wpforms-error-container {background: rgba(239,68,68,0.08) !important;border: 1px solid rgba(239,68,68,0.25) !important;border-radius: 12px !important;padding: 14px 20px !important;margin-bottom: 4px;color: rgba(240,241,244,0.85) !important;font-size: 14px !important;}

/* --- Submit --- */
.wpforms-form .wpforms-submit-container {padding: 0 !important;margin-top: 8px;display: flex;justify-content: flex-end;}
.wpforms-form .wpforms-submit,
.wpforms-form button[type="submit"] {padding: 16px 44px !important;background: var(--cta) !important;border: none !important;border-radius: 50px !important;font-family: var(--font-family), sans-serif !important;font-size: 17px !important;font-weight: 700 !important;line-height: 1 !important;letter-spacing: 0.04em !important;color: #fff !important;cursor: pointer;transition: background 0.22s ease, transform 0.22s ease, box-shadow 0.22s ease;display: inline-flex !important;align-items: center;gap: 8px;box-shadow: 0 8px 28px rgba(242,146,13,0.32) !important;}
.wpforms-form .wpforms-submit::after,
.wpforms-form button[type="submit"]::after {content: '→';font-size: 18px;line-height: 1;}
.wpforms-form .wpforms-submit:hover,
.wpforms-form button[type="submit"]:hover {background: #d97e0b !important;transform: translateY(-2px);box-shadow: 0 14px 40px rgba(242,146,13,0.42) !important;}
.wpforms-form .wpforms-submit:active,
.wpforms-form button[type="submit"]:active {transform: translateY(0);}
.wpforms-form .wpforms-submit:disabled,
.wpforms-form button[type="submit"]:disabled {opacity: 0.5;cursor: not-allowed;transform: none;}

/* --- Bestätigungsmeldung --- */
.wpforms-confirmation-container-full,
.wpforms-confirmation-container {background: rgba(255,255,255,0.06) !important;border: 1.5px solid rgba(255,255,255,0.12) !important;border-radius: 16px !important;padding: 28px 36px !important;color: var(--text-on-dark) !important;font-size: 16px;line-height: 1.6;}
.wpforms-confirmation-container-full p,
.wpforms-confirmation-container p {margin: 0;color: rgba(240,241,244,0.75) !important;}

/* --- Responsive --- */
@media (max-width: 768px) {
    .wpforms-container {padding: 38px 28px 44px !important;}
    .wpforms-form .wpforms-field-container {grid-template-columns: 1fr;}
    .wpforms-form .wpforms-field-textarea,
    .wpforms-form .wpforms-field-name {grid-column: 1;}
    .wpforms-form .wpforms-field-name .wpforms-field-row {flex-direction: column;gap: 12px;}
    .wpforms-form .wpforms-submit-container {justify-content: stretch;}
    .wpforms-form .wpforms-submit,
    .wpforms-form button[type="submit"] {width: 100% !important;justify-content: center;font-size: 16px !important;}
}

/* ========================================
   MEDIA QUERIES - RESPONSIVE
   ======================================== */

@media (max-width: 1750px) {
    .lg {max-width: 95%;}
}

@media (max-width: 1600px) {
    /* Textbild */
    .textbild.freisteller-bloecke .bild {width: 100%; margin: 0;}
    .textbild.freisteller-bloecke .freisteller-grid {grid-template-columns: 50% 50%;}
}

@media (max-width: 1360px) {
    /* Ansprechpartner */
    .ansprechpartner .contact-btns {display: inline-block;}
    /* USP */
    .usp .usp-grid .usp-item .usp-icon {padding: 20px 0;}
}

@media (max-width: 1250px) {
    .ansprechpartner .freisteller {height: 60%;}
    .ansprechpartner .freisteller.scnd-freisteller {height: 55%;}
}

@media (max-width: 1200px) {
    .teasercards .splide__arrow--prev {left: -30px;}
    .teasercards .splide__arrow--next {right: -30px;}
}

@media (max-width: 1024px) {

    /* Typographie */
    h1 {font-size: 42px; line-height: 52px; margin-bottom: 40px;}
    h2 {font-size: 34px; line-height: 42px; margin-bottom: 30px;}
    h3 {font-size: 26px; line-height: 34px; margin-bottom: 28px;}

    /* Button */
    .btn {font-size: 17px;}

    /* Stage */
    .stage .stage-content {flex-direction: column; gap: 24px; padding: 50px 0;}
    .stage.subpage {aspect-ratio: 3/1.5;}

    /* Header */
    header .header-grid .logo {width: 70%;padding: 25px 0;box-sizing: border-box;}

    /* Abschnitts-Paddings */
    .workflow {padding: 70px 0;}
    .textbildslider {padding: 70px 0;}
    .teaser-freisteller .teaser-freisteller-block {padding: 70px 50px;}
    .ansprechpartner {padding: 70px 0;}
    footer {padding: 70px 0;}
    .text.verlaufshintergrund {padding: 80px;}

    /* Teaser-Freisteller: padding-right reduzieren */
    .teaser-freisteller .teaser-freisteller-block .stage-content {padding-right: 40%;}

    /* USP */
    .usp .usp-grid {grid-column-gap: 30px; grid-row-gap: 30px;}
    .usp .usp-grid .usp-item .usp-text {padding: 40px;}
    .usp .usp-grid .usp-item .usp-text p {font-size: 17px; line-height: 24px;}

    /* Workflow: 1-spaltig, Deko-Freisteller ausblenden */
    .workflow-text-grid {grid-template-columns: 100%;}
    .workflow .freisteller {display: none;}
    .workflow-text-grid .workflow-grid {margin-top: 40px;}

    /* Ansprechpartner: 1-spaltig, Freisteller-Bilder ausblenden */
    .ansprechpartner-text-grid {grid-template-columns: 100%;}
    .ansprechpartner .freisteller {display: none;}
    .ansprechpartner .freisteller.scnd-freisteller {display: none;}

    /* Footer: 2-spaltig */
    footer .footer-grid {grid-template-columns: auto auto; gap: 40px;}

    /* Text mehrspaltig: 1-spaltig */

    .text.mehrspaltig .text-grid {grid-template-columns: 1fr; gap: 30px;}
    /* Text Bild */

    .textbild.freisteller-bloecke .bild {width: 100%; margin-left: 0;}
    .textbild.freisteller-bloecke .freisteller-grid {grid-template-columns: 1fr 1fr;}
    .textbild .text {order: 1!important;}
    .textbild .bild {order: 2!important;}
    .textbild .wrp {grid-template-columns: 100%!important;}

    /* Text Bild Slider */
    .textbildslider .text-grid {grid-template-columns: 100%; gap: 0;}

    /* Carousel-Pfeile etwas näher */
    .teasercards .splide__arrow--prev {left: -20px;}
    .teasercards .splide__arrow--next {right: -20px;}

    /* Zusammenspiel Leistungen: max 2 Spalten (inline style überschreiben) */
    .zusammenspiel-leistungen .cards.no-carousel {grid-template-columns: repeat(2, 1fr) !important;}

    /* Margins */
    .mb {margin-bottom: 100px;}
    .mb50 {margin-bottom: 50px;}

    /* Page Layout */
    main.withsidebar .page-build {grid-template-columns: 100%;}
    main.withsidebar .page-build .sidebar {display: none;}

    /* Teasercards */
    .teasercards .cards.no-carousel {grid-template-columns: repeat(2, 1fr)!important; gap: 5%;}
    .teasercard-item .teasercard-content {padding: 22px 26px 26px;}

    /* Gallery */
    .gallery .glightbox-gallery {grid-template-columns: repeat(4, 1fr);}
    .gallery .video-gallery-grid {grid-template-columns: repeat(2, 1fr);}
    .gallery .filterrow {display: grid;grid-template-columns: 100%;gap: 25px;}
    .gallery .filterrow #filter {flex-wrap: wrap;}

    /* Ansprechpartner */
    .ansprechpartner:after {display: none;}
    .ansprechpartner .contact-btns {display: flex; flex-wrap: wrap;}

    /* Accordion */
    .accordion .accordion-title {font-size: 20px;}

}


/* Tablet Portrait & Below (768px) */
@media (max-width: 768px) {

    /* Typographie */
    h1 {font-size: 34px; line-height: 42px; margin-bottom: 26px;}
    h2 {font-size: 28px; line-height: 36px; margin-bottom: 22px;}
    h2 em {font-size: 20px; line-height: 30px; margin-bottom: 22px;}
    h3 {font-size: 22px; line-height: 30px; margin-bottom: 20px;}

    /* Accordion */
    .accordion .accordion-list {padding: 0; border-radius: 30px;}
    .accordion .accordion-head {padding: 28px 0;gap: 20px;}
    .accordion .accordion-title {font-size: 18px;}
    .accordion .accordion-icon {width: 38px;height: 38px;}
    .accordion .accordion-icon svg {width: 17px;height: 17px;}
    .accordion .accordion-content-inner {font-size: 16px;line-height: 26px;padding-bottom: 28px;}

    /* Text + Image */
    .textbild .text {order: 1;}
    .textbild .bild {order: 2;}
    .textbild .wrp {grid-template-columns: 100%;gap: 50px;}
    .tb-leistungen {grid-template-columns: 1fr;}
    /* Text + Bild Slider */
    .textbildslider .slider-panel.aktiv {grid-template-columns: 100% !important;gap: 40px;}
    .textbildslider .slider-panel .text {order: 2!important;}
    .textbildslider .slider-panel .bild {order: 1!important;}
    .textbildslider .text-grid .text-text {margin-top: 0;}


    /* Tabs ausblenden, Mobile Nav einblenden */

    .textbildslider .slider-tabs {display: none;}
    .slider-mobile-nav {display: flex;align-items: center;justify-content: space-between;gap: 16px;margin-top: 40px;}
    .slider-prev,
    .slider-next {flex-shrink: 0;width: 44px;height: 44px;border-radius: 50%;background: rgba(255,255,255,0.12);border: 1.5px solid rgba(255,255,255,0.25);color: #fff;cursor: pointer;display: flex;align-items: center;justify-content: center;transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;}
    .slider-prev:hover, .slider-next:hover {background: var(--cta);border-color: var(--cta);}
    .slider-prev:active, .slider-next:active {transform: scale(0.9);}
    .slider-dots {display: flex;align-items: center;justify-content: center;gap: 8px;flex: 1;}
    .slider-dot {width: 8px;height: 8px;border-radius: 50%;background: rgba(255,255,255,0.28);border: none;padding: 0;cursor: pointer;transition: background 0.2s ease, transform 0.2s ease;}
    .slider-dot.aktiv {background: var(--cta);transform: scale(1.35);}
    /* Freisteller-Variante */
    .textbild.freisteller-bloecke .bild {order: 2;}
    .textbild.freisteller-bloecke .text {order: 1;}

    /* Blog Grid */
    main.withsidebar .content .blog-grid {grid-template-columns: repeat(2, 1fr);}



    /* Lightbox */
    .lightbox-close {width: 40px;height: 40px;font-size: 24px;top: 10px;right: 10px;}
    .lightbox-prev, .lightbox-next {width: 45px;height: 45px;font-size: 22px;}
    .lightbox-prev {left: 10px;}
    .lightbox-next {right: 10px;}
    .lightbox-counter {font-size: 12px;padding: 6px 12px;top: 10px;}
    .lightbox-zoom-controls {bottom: 20px;gap: 8px;}
    .lightbox-zoom-controls button {width: 38px;height: 38px;font-size: 18px;}
    .lightbox-image-wrapper {max-width: 95%;max-height: 85%;}
    .lightbox-video-wrapper {width: 95vw;}

    /* Team */
    .team-grid {grid-template-columns: repeat(2, 1fr); gap: 20px;}
    .team-heading {margin-bottom: 40px;}

    /* Abschnitts-Paddings */
    .workflow {padding: 60px 0;}
    .textbildslider {padding: 60px 0;}
    .teaser-freisteller .teaser-freisteller-block {padding: 60px 35px;}
    .teaser-freisteller .teaser-freisteller-block:before {display: none;}
    .teaser-freisteller .teaser-freisteller-block:after {display: none;}
    .ansprechpartner {padding: 60px 0;}
    footer {padding: 60px 0;}
    .text.verlaufshintergrund {padding: 60px 40px;}

    /* Stage */
    .stage .stage-content {padding: 36px 0;}
    .stage {margin-top: 90px;}

    /* Teaser-Freisteller: Freisteller-Bild ausblenden, volle Breite */
    .teaser-freisteller .teaser-freisteller-block .stage-content {padding-right: 0;}
    .teaser-freisteller .teaser-freisteller-block .freisteller {display: none;}

    /* USP: 2-spaltig */
    .usp .usp-grid {grid-template-columns: 100%;}
    .usp .usp-grid .usp-item .usp-text {padding: 36px; min-height: 220px;}

    /* Footer: 1-spaltig */
    footer .footer-grid {grid-template-columns: 1fr;}
    footer .footer-grid .contact, footer .footer-grid .footer-nav {display: none;}

    /* Gallery masonry */
    .gallery .glightbox-gallery {grid-template-columns: repeat(2, 1fr);}

    /* Workflow-Grid: 2 gleichmäßige Spalten */
    .workflow-text-grid .workflow-grid {grid-template-columns: 1fr 1fr;}

    /* Zusammenspiel Leistungen Heading */
    .zusammenspiel-leistungen .zl-heading {margin-bottom: 40px;}

    /* Teasercard Carousel-Pfeile */
    .teasercards .splide__arrow--prev {left: 10px;}
    .teasercards .splide__arrow--next {right: 10px;}

    /* contact-btns */
    .contact-btns {flex-wrap: wrap; gap: 20px;}

    /* Zusammenspiel Leistungen */
    .zusammenspiel-leistungen .zl-heading {grid-template-columns: 100%; gap: 0;}
}


@media (max-width: 650px) {
    /* Team */
    .team-grid {grid-template-columns: 100%; gap: 20px;}
}


/* Mobile & Below (550px) */
@media (max-width: 550px) {

    /* Typographie */
    h1 {font-size: 30px; line-height: 38px; margin-bottom: 22px;}
    h2 {font-size: 24px; line-height: 32px; margin-bottom: 20px;}
    h3 {font-size: 20px; line-height: 28px; margin-bottom: 18px;}

    /* Header */
    .header-grid .btn {display: none;}
    .mainnav-toggle {right: 0!important;}

    /* Button */
    .btn {font-size: 16px; padding: 13px 24px;}

    /* Abschnitts-Paddings */
    .workflow {padding: 55px 0;}
    .textbildslider {padding: 55px 0;}
    .teaser-freisteller .teaser-freisteller-block {padding: 50px 35px;}
    .ansprechpartner {padding: 55px 0;}
    footer {padding: 55px 0;}
    .text.verlaufshintergrund {padding: 45px 28px;}
    .text.verlaufshintergrund:before, .text.verlaufshintergrund:after {bottom: -150px;}

    /* Stage */
    .stage {margin-top: 95px;}
    .stage .stage-content {padding: 28px 0;}

    /* USP: 1-spaltig */
    .usp .usp-grid {grid-template-columns: 1fr;}
    .usp .usp-grid .usp-item .usp-text p {font-size: 16px;}
    .usp .usp-grid .usp-item .usp-icon {height: 160px; padding: 50px 0;}

    /* Workflow-Grid: 1-spaltig */
    .workflow-text-grid .workflow-grid {grid-template-columns: 1fr;}

    /* Zusammenspiel Leistungen: 1-spaltig */
    .zusammenspiel-leistungen .cards.no-carousel {grid-template-columns: 1fr !important;}
    .zusammenspiel-leistungen .zl-heading {margin-bottom: 30px;}

    /* Gallery */
    .gallery .video-gallery-grid {grid-template-columns: 100%;}
    .gallery .glightbox-gallery {grid-template-columns: repeat(2, 1fr);}

    /* Teasercards */
    .teasercards .cards.no-carousel {grid-template-columns: 100%!important;}
}

/* Mobile Small (500px) */
@media (max-width: 500px) {
    /* Margins */
    .mb {margin-bottom: 50px;}
    .mb50 {margin-bottom: 25px;}

    /* Teasercards */
    .teasercards .splide__arrow--prev {left: 10px;}
    .teasercards .splide__arrow--next {right: 10px;}
    .teasercards .cards.no-carousel {grid-template-columns: 100%;gap: 20px;}
    .teasercard-item .teasercard-content h3 {font-size: 18px;}
    .teasercard-arrow {width: 40px;height: 40px;}
    .teasercard-arrow svg {width: 17px;height: 17px;}

    /* Slider */
    .splide__arrow--prev {left: 10px;}
    .splide__arrow--next {right: 10px;}
    .splide__arrow {width: 40px;height: 40px;font-size: 20px;}

    /* Team */
    .team-grid {gap: 14px;}
    .team-card__info {padding: 16px 18px 18px;}
    .team-card__name {font-size: 15px;}
    .team-card__role {font-size: 11px;}

    /* Typographie */
    h1 {font-size: 26px; line-height: 34px; margin-bottom: 20px;}
    h2 {font-size: 22px; line-height: 30px; margin-bottom: 18px;}
    h3 {font-size: 19px; line-height: 27px; margin-bottom: 16px;}

    /* Abschnitts-Paddings */
    .workflow {padding: 50px 0;}
    .textbildslider {padding: 50px 0;}
    .ansprechpartner {padding: 50px 0;}
    footer {padding: 50px 0;}
    .text.verlaufshintergrund {padding: 36px 22px;}

    /* Footer Nav: 1-spaltig */
    footer .footer-grid ul {grid-template-columns: 1fr;}
}