/*
 Theme Name:   Hello Elementor Child
 Description:  Wilhelm Schmidt Child Theme für das Hello Elementor Theme. Custom Funktionen, CSS-Styles und individuelle Anpassungen für Wilhelm Schmidt GmbH
 Author:       Robert Hell
 Author URI:   https://www.roberthell.de
 Template:     hello-elementor
 Version:      1.0
 Text Domain:  hello-elementor-child
*/

/* ===================================================================
   WSG · Bereichs-Theming (1+4-Farbmodell)
   Semantische Elementor-Global-Farben werden pro Bereich umgeschaltet.
   Anwendung: Klasse bereich-b1 … b4 an den ÄUSSERSTEN Container/Section
   der jeweiligen Bereichsseite setzen (Elementor „CSS Classes").
   Widgets referenzieren die semantischen Globals; deren Wert wird hier
   je Bereich überschrieben. Header/Footer ohne Klasse = neutraler Gruppenton.

   Global-IDs:  Bereich-Marke = 176e1573 · Bereich-Ink = e71e68b8 · Bereich-OnDark = 46cce157
   Werte 1:1 aus Styleguide (Marke / Ink / On-Dark).
   =================================================================== */
.bereich-b1{ /* Maschinenbau */
  --e-global-color-176e1573:#e3051b;
  --e-global-color-e71e68b8:#e3051b;
  --e-global-color-46cce157:#fa0820;
}
.bereich-b2{ /* Engineering / Konstrukta */
  --e-global-color-176e1573:#04396b;
  --e-global-color-e71e68b8:#04396b;
  --e-global-color-46cce157:#3691f5;
}
.bereich-b3{ /* Motorenservice */
  --e-global-color-176e1573:#009fe3;
  --e-global-color-e71e68b8:#007db3;
  --e-global-color-46cce157:#009fe3;
}
.bereich-b4{ /* Abgasreinigung */
  --e-global-color-176e1573:#00976b;
  --e-global-color-e71e68b8:#008760;
  --e-global-color-46cce157:#00976b;
}

/* ===================================================================
   WSG · Barrierefreiheit (WCAG 2.1 AA) — template-weite Grundlagen
   Seitenspezifisches (Alt-Texte, aria-current, Formulare) je Seite beim Bau.
   =================================================================== */

/* Skip-Link (WCAG 2.4.1): den THEME-eigenen `.skip-link` (per .screen-reader-text
   versteckt) bei Fokus sichtbar machen und stylen. Kein eigener Link → keine Dopplung. */
.skip-link:focus{
  position:fixed; left:0; top:0; z-index:100000;
  width:auto; height:auto; margin:0; clip:auto; clip-path:none; overflow:visible;
  padding:12px 20px; background:#fff; color:#111;
  font:500 16px/1.4 "Atkinson Hyperlegible Next",system-ui,sans-serif;
  text-decoration:underline; border-radius:0 0 6px 0;
  box-shadow:0 2px 8px rgba(0,0,0,.25);
}

/* Sichtbarer Tastatur-Fokus (WCAG 2.4.7). Dunkler Rahmen + heller Halo →
   funktioniert auf hellen UND dunklen Flächen, unabhängig von der Bereichsfarbe.
   Nur :focus-visible, damit Maus-Klicks keinen Rahmen zeigen. */
:focus-visible{
  outline:3px solid #007cf1 !important; /* Styleguide-Fokus-Ring 15.07. */
  outline-offset:2px;
  box-shadow:0 0 0 5px #fff;
}

/* Bewegung reduzieren, wenn vom Nutzer gewünscht (WCAG 2.2.2 / 2.3.3) */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
    scroll-behavior:auto !important;
  }
}

/* ===================================================================
   Type-Scale (Basis, auto) — Werte aus Styleguide. Die Spezifität
   (hN.elementor-heading-title) schlägt Elementors leere Größen-Variable,
   damit Headings auch OHNE zugewiesenes Preset korrekt sitzen.
   Presets pro Ebene (WSG/H1…H4, Body, Small, Kicker) zusätzlich im Editor wählbar.
   =================================================================== */
h1,.elementor-widget-heading h1.elementor-heading-title{ font-size:48px; line-height:1.1; }
h2,.elementor-widget-heading h2.elementor-heading-title{ font-size:34px; line-height:1.15; }
h3,.elementor-widget-heading h3.elementor-heading-title{ font-size:26px; line-height:1.2; }
h4,.elementor-widget-heading h4.elementor-heading-title{ font-size:21px; line-height:1.25; }
@media (max-width:767px){
  h1,.elementor-widget-heading h1.elementor-heading-title{ font-size:34px; }
  h2,.elementor-widget-heading h2.elementor-heading-title{ font-size:27px; }
  h3,.elementor-widget-heading h3.elementor-heading-title{ font-size:23px; }
  h4,.elementor-widget-heading h4.elementor-heading-title{ font-size:19px; }
}

/* ===================================================================
   Header · Topbar — Bereichs-Quicklinks (Punkt aus Global-Farbe, Hover)
   =================================================================== */

/* Elementor-Container sind per Default 100% breit. Die beiden Gruppen (Links/Icons)
   im Boxed-Container auf Inhaltsbreite zwingen, sonst 2×100% → Überlauf. */
.wsg-topbar .e-con-boxed > .e-con-inner > .e-con{ width:auto !important; flex:0 0 auto !important; }

.wsg-tb-link a{
  color:#c6ccd2; text-decoration:none; position:relative; padding-left:14px;
  display:inline-block; transition:color .12s ease;
}
.wsg-tb-link a::before{
  content:""; position:absolute; left:0; top:50%; transform:translateY(-50%);
  width:6px; height:6px; border-radius:50%;
}
.wsg-tb-b1 a::before{ background:var(--e-global-color-af5cefdb); } /* B1 On-Dark */
.wsg-tb-b2 a::before{ background:var(--e-global-color-69d9c54f); } /* B2 On-Dark */
.wsg-tb-b3 a::before{ background:var(--e-global-color-9f329608); } /* B3 On-Dark */
.wsg-tb-b4 a::before{ background:var(--e-global-color-065bfbbb); } /* B4 On-Dark */
/* Hover: Text weiß (Punkt bleibt Bereichsfarbe als Kennung).
   Selektor MUSS die native title_color schlagen (die liegt bei 0,4,0 auf
   .elementor-heading-title) → hier 0,4,1, sonst gewinnt Grau. */
.wsg-topbar .wsg-tb-link:hover .elementor-heading-title a{ color:#fff; text-decoration:underline; text-underline-offset:5px; text-decoration-color:#fff; }

/* Topbar Social-Icons füllen per Flex-STRETCH die volle Leistenhöhe (Hover-BG geht ganz durch),
   36px breit, Icon 15px, ohne Elementor-Innenabstand. */
.wsg-topbar .wsg-social{ width:auto !important; max-width:none; align-self:stretch !important; display:flex; }
.wsg-topbar .wsg-social > .elementor-widget-container{ height:100%; display:flex; }
.wsg-topbar .wsg-social .elementor-social-icons-wrapper{ display:flex; gap:0; margin:0; height:100%; align-items:stretch; justify-content:flex-end; }
.wsg-topbar .wsg-social .elementor-grid-item{ margin:0 !important; padding:0 !important; display:flex; align-items:stretch; }
/* Layout (volle Leistenhöhe). Icon-Farbe grau + Icon-Weiß bei Hover = NATIVE Widget-Settings
   (icon_color:custom, icon_secondary_color #c6ccd2, hover_secondary_color #fff → färbt auch das <svg>). */
.wsg-topbar .elementor-social-icon{
  width:36px !important; min-width:36px; height:auto !important; align-self:stretch;
  border-radius:0; padding:0 !important;
  display:flex; align-items:center; justify-content:center; margin:0;
}
.wsg-topbar .elementor-social-icon svg{ width:15px; height:15px; }

/* Hover-Hintergrund JE MARKE: pro Icon nativ NICHT möglich (Widget-Hover gilt global) → CSS.
   Icon-Weiß bei Hover kommt nativ (s. o.). !important schlägt den nativen transparenten Basis-BG. */
.wsg-topbar .elementor-social-icon-linkedin-in:hover{ background-color:#0A66C2 !important; }
.wsg-topbar .elementor-social-icon-instagram:hover{ background-color:#E4405F !important; }
.wsg-topbar .elementor-social-icon-facebook-f:hover{ background-color:#1877F2 !important; }
.wsg-topbar .elementor-social-icon-envelope:hover{ background-color:#808b95 !important; }

/* ===================================================================
   Mega-Menü „Kompetenzen" — Bereichs-Punkt vor dem Titel (Pseudo-Element,
   nativ nicht möglich → CSS). Punktfarbe = Bereich-Marke. 11px.
   =================================================================== */
.wsg-mega-h .elementor-heading-title{ position:relative; padding-left:19px; }
.wsg-mega-h .elementor-heading-title::before{
  content:""; position:absolute; left:0; top:0.55em; transform:translateY(-50%);
  width:11px; height:11px; border-radius:50%;
}
.wsg-col-b1.wsg-mega-h .elementor-heading-title::before{ background:#e3051b; } /* MB Marke */
.wsg-col-b2.wsg-mega-h .elementor-heading-title::before{ background:#04396b; } /* Eng Marke */
.wsg-col-b3.wsg-mega-h .elementor-heading-title::before{ background:#009fe3; } /* Motor Marke */
.wsg-col-b4.wsg-mega-h .elementor-heading-title::before{ background:#00976b; } /* Abgas Marke */

/* ===================================================================
   Footer (Theme-Builder-Footer, Post 181)
   =================================================================== */
.wsg-f-claim{ max-width:30ch; }

/* Social-Kreise 36px, Gap 10, Icon weiß (Farben nativ pro Item) */
.wsg-f-social .elementor-social-icon{ width:36px !important; height:36px !important; }
.wsg-f-social .elementor-grid{ --grid-column-gap:10px; --grid-row-gap:10px; column-gap:10px; }

/* Nav-Menü vertikal: Item-Abstand 16, Link als Flex (Punkt/Icon inline) */
.wsg-f-komp .elementor-nav-menu > li:not(:last-child),
.wsg-f-gruppe .elementor-nav-menu > li:not(:last-child){ margin-bottom:16px; }
.wsg-f-komp .elementor-item, .wsg-f-gruppe .elementor-item{ padding:0 !important; display:flex; align-items:center; }

/* Kompetenzen-Punkte (reines CSS, On-Dark) — display:inline-block, sonst greifen width/height nicht */
/* .menu-item hebt Spezifität auf 0-5-2 → schlägt Elementors :not()-Pointer-Regel (opacity:0, 0-5-1).
   position:static + opacity:1 + inset:auto neutralisieren Elementors Pointer-::before (absolute, opacity:0). */
.wsg-f-menu.wsg-f-komp li.fb-b1.menu-item .elementor-item::before,
.wsg-f-menu.wsg-f-komp li.fb-b2.menu-item .elementor-item::before,
.wsg-f-menu.wsg-f-komp li.fb-b3.menu-item .elementor-item::before,
.wsg-f-menu.wsg-f-komp li.fb-b4.menu-item .elementor-item::before{ content:""; display:inline-block; position:static; inset:auto; opacity:1; width:8px; height:8px; border-radius:50%; margin-right:9px; flex:0 0 auto; }
/* .wsg-f-menu.wsg-f-komp = Compound (0-4-x) schlägt Elementors Nav-Pointer-Regel (var(--accent), 0-4-1) */
.wsg-f-menu.wsg-f-komp li.fb-b1 .elementor-item::before{ background:#fa0820; }
.wsg-f-menu.wsg-f-komp li.fb-b2 .elementor-item::before{ background:#3691f5; }
.wsg-f-menu.wsg-f-komp li.fb-b3 .elementor-item::before{ background:#009fe3; }
.wsg-f-menu.wsg-f-komp li.fb-b4 .elementor-item::before{ background:#00976b; }

/* Gruppe + Rechtliches Item-Icons als SVG-Data-URI (#9aa3ab) — kein Webfont nötig, rendern immer */
.wsg-f-menu.wsg-f-gruppe li[class*="fi-"].menu-item .elementor-item::before{ content:""; display:inline-block; position:static; inset:auto; opacity:1; width:16px; height:16px; margin-right:11px; flex:0 0 auto; background-color:transparent; background-repeat:no-repeat; background-position:center; background-size:contain; }
.wsg-f-legal .elementor-nav-menu{ display:flex; gap:22px; }
.wsg-f-legal .elementor-item{ padding:0 !important; display:flex; align-items:center; }
.wsg-f-menu.wsg-f-legal li[class*="fi-"].menu-item .elementor-item::before{ content:""; display:inline-block; position:static; inset:auto; opacity:1; width:12px; height:12px; margin-right:7px; flex:0 0 auto; background-color:transparent; background-repeat:no-repeat; background-position:center; background-size:contain; }
.wsg-f-menu.wsg-f-gruppe li.fi-building .elementor-item::before{ background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20448%20512'%3E%3Cpath%20fill='%239aa3ab'%20d='M436%20480h-20V24c0-13.255-10.745-24-24-24H56C42.745%200%2032%2010.745%2032%2024v456H12c-6.627%200-12%205.373-12%2012v20h448v-20c0-6.627-5.373-12-12-12zM128%2076c0-6.627%205.373-12%2012-12h40c6.627%200%2012%205.373%2012%2012v40c0%206.627-5.373%2012-12%2012h-40c-6.627%200-12-5.373-12-12V76zm0%2096c0-6.627%205.373-12%2012-12h40c6.627%200%2012%205.373%2012%2012v40c0%206.627-5.373%2012-12%2012h-40c-6.627%200-12-5.373-12-12v-40zm52%20148h-40c-6.627%200-12-5.373-12-12v-40c0-6.627%205.373-12%2012-12h40c6.627%200%2012%205.373%2012%2012v40c0%206.627-5.373%2012-12%2012zm76%20160h-64v-84c0-6.627%205.373-12%2012-12h40c6.627%200%2012%205.373%2012%2012v84zm64-172c0%206.627-5.373%2012-12%2012h-40c-6.627%200-12-5.373-12-12v-40c0-6.627%205.373-12%2012-12h40c6.627%200%2012%205.373%2012%2012v40zm0-96c0%206.627-5.373%2012-12%2012h-40c-6.627%200-12-5.373-12-12v-40c0-6.627%205.373-12%2012-12h40c6.627%200%2012%205.373%2012%2012v40zm0-96c0%206.627-5.373%2012-12%2012h-40c-6.627%200-12-5.373-12-12V76c0-6.627%205.373-12%2012-12h40c6.627%200%2012%205.373%2012%2012v40z'/%3E%3C/svg%3E"); }
.wsg-f-menu.wsg-f-gruppe li.fi-userplus .elementor-item::before{ background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20640%20512'%3E%3Cpath%20fill='%239aa3ab'%20d='M624%20208h-64v-64c0-8.8-7.2-16-16-16h-32c-8.8%200-16%207.2-16%2016v64h-64c-8.8%200-16%207.2-16%2016v32c0%208.8%207.2%2016%2016%2016h64v64c0%208.8%207.2%2016%2016%2016h32c8.8%200%2016-7.2%2016-16v-64h64c8.8%200%2016-7.2%2016-16v-32c0-8.8-7.2-16-16-16zm-400%2048c70.7%200%20128-57.3%20128-128S294.7%200%20224%200%2096%2057.3%2096%20128s57.3%20128%20128%20128zm89.6%2032h-16.7c-22.2%2010.2-46.9%2016-72.9%2016s-50.6-5.8-72.9-16h-16.7C60.2%20288%200%20348.2%200%20422.4V464c0%2026.5%2021.5%2048%2048%2048h352c26.5%200%2048-21.5%2048-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z'/%3E%3C/svg%3E"); }
.wsg-f-menu.wsg-f-gruppe li.fi-envelope .elementor-item::before{ background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20512%20512'%3E%3Cpath%20fill='%239aa3ab'%20d='M502.3%20190.8c3.9-3.1%209.7-.2%209.7%204.7V400c0%2026.5-21.5%2048-48%2048H48c-26.5%200-48-21.5-48-48V195.6c0-5%205.7-7.8%209.7-4.7%2022.4%2017.4%2052.1%2039.5%20154.1%20113.6%2021.1%2015.4%2056.7%2047.8%2092.2%2047.6%2035.7.3%2072-32.8%2092.3-47.6%20102-74.1%20131.6-96.3%20154-113.7zM256%20320c23.2.4%2056.6-29.2%2073.4-41.4%20132.7-96.3%20142.8-104.7%20173.4-128.7%205.8-4.5%209.2-11.5%209.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5%2064%200%2085.5%200%20112v19c0%207.4%203.4%2014.3%209.2%2018.9%2030.6%2023.9%2040.7%2032.4%20173.4%20128.7%2016.8%2012.2%2050.2%2041.8%2073.4%2041.4z'/%3E%3C/svg%3E"); }
.wsg-f-menu.wsg-f-legal li.fi-info .elementor-item::before{ background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20512%20512'%3E%3Cpath%20fill='%239aa3ab'%20d='M256%208C119.043%208%208%20119.083%208%20256c0%20136.997%20111.043%20248%20248%20248s248-111.003%20248-248C504%20119.083%20392.957%208%20256%208zm0%20110c23.196%200%2042%2018.804%2042%2042s-18.804%2042-42%2042-42-18.804-42-42%2018.804-42%2042-42zm56%20254c0%206.627-5.373%2012-12%2012h-88c-6.627%200-12-5.373-12-12v-24c0-6.627%205.373-12%2012-12h12v-64h-12c-6.627%200-12-5.373-12-12v-24c0-6.627%205.373-12%2012-12h64c6.627%200%2012%205.373%2012%2012v100h12c6.627%200%2012%205.373%2012%2012v24z'/%3E%3C/svg%3E"); }
.wsg-f-menu.wsg-f-legal li.fi-lock .elementor-item::before{ background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20448%20512'%3E%3Cpath%20fill='%239aa3ab'%20d='M400%20224h-24v-72C376%2068.2%20307.8%200%20224%200S72%2068.2%2072%20152v72H48c-26.5%200-48%2021.5-48%2048v192c0%2026.5%2021.5%2048%2048%2048h352c26.5%200%2048-21.5%2048-48V272c0-26.5-21.5-48-48-48zm-104%200H152v-72c0-39.7%2032.3-72%2072-72s72%2032.3%2072%2072v72z'/%3E%3C/svg%3E"); }
.wsg-f-menu.wsg-f-legal li.fi-file .elementor-item::before{ background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20384%20512'%3E%3Cpath%20fill='%239aa3ab'%20d='M224%20136V0H24C10.7%200%200%2010.7%200%2024v464c0%2013.3%2010.7%2024%2024%2024h336c13.3%200%2024-10.7%2024-24V160H248c-13.2%200-24-10.8-24-24zm64%20236c0%206.6-5.4%2012-12%2012H108c-6.6%200-12-5.4-12-12v-8c0-6.6%205.4-12%2012-12h168c6.6%200%2012%205.4%2012%2012v8zm0-64c0%206.6-5.4%2012-12%2012H108c-6.6%200-12-5.4-12-12v-8c0-6.6%205.4-12%2012-12h168c6.6%200%2012%205.4%2012%2012v8zm0-72v8c0%206.6-5.4%2012-12%2012H108c-6.6%200-12-5.4-12-12v-8c0-6.6%205.4-12%2012-12h168c6.6%200%2012%205.4%2012%2012zm96-114.1v6.1H256V0h6.1c6.4%200%2012.5%202.5%2017%207l97.9%2098c4.5%204.5%207%2010.6%207%2016.9z'/%3E%3C/svg%3E"); }

/* Mobile: ein Strang, ohne Trennlinien zwischen den Blöcken (bewusst abweichend vom Screendesign) */
@media (max-width:767px){
  .wsg-footer-inner{ padding:54px 22px 38px !important; }
  .wsg-footer-grid{ grid-template-columns:1fr !important; border-bottom:0 !important; }
  .wsg-f-col2, .wsg-f-col3, .wsg-f-col4{ margin-left:0 !important; padding-left:0 !important; margin-top:44px; padding-top:44px; }
  .wsg-footer-bottom{ flex-direction:column; gap:14px; text-align:center; }
  .wsg-f-legal .elementor-nav-menu{ justify-content:center; gap:18px; }
}

/* ============================================================
   WSG BUTTON-SYSTEM  (Styleguide § Button-System, final 16.07.)
   Nutzung Elementor: Button-Widget → Erweitert → CSS-Klassen:
     "wsg-btn wsg-btn--b1"  (Basis + eine Variante). Widget-Farben/Padding auf Default lassen.
   Klasse liegt am Widget-Wrapper → gestylt wird der innere .elementor-button.
   Zusätzlich a.wsg-btn für einfache Links (z. B. Referenzseite / HTML-Widget).
   Selektor-Spezifität (0,2,0) schlägt Elementors .elementor-button ohne !important.
   ============================================================ */
.wsg-btn .elementor-button, a.wsg-btn{
  display:inline-flex; align-items:center; justify-content:center;
  font-family:"Red Hat Display",sans-serif !important; font-weight:800 !important; font-size:16px !important; line-height:1 !important;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; text-rendering:optimizeLegibility;
  padding:13px 22px; border-radius:3px; border:1.5px solid transparent;
  text-decoration:none; cursor:pointer;
  transition:background-color .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.wsg-btn .elementor-button .elementor-button-content-wrapper{ display:flex; align-items:center; gap:8px; }
.wsg-btn .elementor-button .elementor-button-icon{ margin:0; }
.wsg-btn .elementor-button .elementor-button-icon i,
.wsg-btn .elementor-button .elementor-button-icon svg,
a.wsg-btn i, a.wsg-btn svg{ width:14px; height:14px; font-size:14px; fill:currentColor; }
.wsg-btn .elementor-button:focus-visible, a.wsg-btn:focus-visible{ outline:3px solid #007cf1; outline-offset:3px; border-radius:2px; }

/* Fläche mit !important: schlägt Elementors dynamisch injizierte Button-Default-Fläche
   (Kit-Accent) zuverlässig — im Frontend UND im Editor. Rahmen/Text greifen ohne !important. */
/* — Bereichsfarben · hell (Primär-CTA, Ink) — */
.wsg-btn.wsg-btn--b1 .elementor-button, a.wsg-btn.wsg-btn--b1{ background:#e3051b !important; border-color:#e3051b; color:#fff; }
.wsg-btn.wsg-btn--b1 .elementor-button:hover, a.wsg-btn.wsg-btn--b1:hover{ background:#cc0518 !important; border-color:#cc0518; color:#fff; }
.wsg-btn.wsg-btn--b2 .elementor-button, a.wsg-btn.wsg-btn--b2{ background:#04396b !important; border-color:#04396b; color:#fff; }
.wsg-btn.wsg-btn--b2 .elementor-button:hover, a.wsg-btn.wsg-btn--b2:hover{ background:#03284b !important; border-color:#03284b; color:#fff; }
.wsg-btn.wsg-btn--b3 .elementor-button, a.wsg-btn.wsg-btn--b3{ background:#007db3 !important; border-color:#007db3; color:#fff; }
.wsg-btn.wsg-btn--b3 .elementor-button:hover, a.wsg-btn.wsg-btn--b3:hover{ background:#0071a1 !important; border-color:#0071a1; color:#fff; }
.wsg-btn.wsg-btn--b4 .elementor-button, a.wsg-btn.wsg-btn--b4{ background:#008760 !important; border-color:#008760; color:#fff; }
.wsg-btn.wsg-btn--b4 .elementor-button:hover, a.wsg-btn.wsg-btn--b4:hover{ background:#007a56 !important; border-color:#007a56; color:#fff; }

/* — Bereichsfarben · on-dark — */
.wsg-btn.wsg-btn--b1-dk .elementor-button, a.wsg-btn.wsg-btn--b1-dk{ background:#fa0820 !important; border-color:#fa0820; color:#fff; }
.wsg-btn.wsg-btn--b1-dk .elementor-button:hover, a.wsg-btn.wsg-btn--b1-dk:hover{ background:#e00718 !important; border-color:#e00718; color:#fff; }
.wsg-btn.wsg-btn--b2-dk .elementor-button, a.wsg-btn.wsg-btn--b2-dk{ background:#3691f5 !important; border-color:#3691f5; color:#fff; }
.wsg-btn.wsg-btn--b2-dk .elementor-button:hover, a.wsg-btn.wsg-btn--b2-dk:hover{ background:#3183dd !important; border-color:#3183dd; color:#fff; }
.wsg-btn.wsg-btn--b3-dk .elementor-button, a.wsg-btn.wsg-btn--b3-dk{ background:#007db3 !important; border-color:#007db3; color:#fff; }
.wsg-btn.wsg-btn--b3-dk .elementor-button:hover, a.wsg-btn.wsg-btn--b3-dk:hover{ background:#006a99 !important; border-color:#006a99; color:#fff; }
.wsg-btn.wsg-btn--b4-dk .elementor-button, a.wsg-btn.wsg-btn--b4-dk{ background:#00976b !important; border-color:#00976b; color:#fff; }
.wsg-btn.wsg-btn--b4-dk .elementor-button:hover, a.wsg-btn.wsg-btn--b4-dk:hover{ background:#00875f !important; border-color:#00875f; color:#fff; }

/* — Neutral · hell (bereichsunabhängig) — */
.wsg-btn.wsg-btn--dark .elementor-button, a.wsg-btn.wsg-btn--dark{ background:#111 !important; border-color:#111; color:#fff; }
.wsg-btn.wsg-btn--dark .elementor-button:hover, a.wsg-btn.wsg-btn--dark:hover{ background:#43464a !important; border-color:#43464a; color:#fff; }
.wsg-btn.wsg-btn--dark-outline .elementor-button, a.wsg-btn.wsg-btn--dark-outline{ background:transparent !important; border-color:#111; color:#111; }
.wsg-btn.wsg-btn--dark-outline .elementor-button:hover, a.wsg-btn.wsg-btn--dark-outline:hover{ background:#e6e6e6 !important; border-color:#111; color:#14181c; }

/* — Neutral · dunkel/Bild (bereichsunabhängig) — */
.wsg-btn.wsg-btn--light .elementor-button, a.wsg-btn.wsg-btn--light{ background:#fff !important; border-color:#fff; color:#111; }
.wsg-btn.wsg-btn--light .elementor-button:hover, a.wsg-btn.wsg-btn--light:hover{ background:#e6e6e6 !important; border-color:#e6e6e6; color:#14181c; }
.wsg-btn.wsg-btn--light-outline .elementor-button, a.wsg-btn.wsg-btn--light-outline{ background:transparent !important; border-color:#fff; color:#fff; }
.wsg-btn.wsg-btn--light-outline .elementor-button:hover, a.wsg-btn.wsg-btn--light-outline:hover{ background:rgba(255,255,255,.14) !important; border-color:rgba(255,255,255,.9); color:#fff; }
/* ===================================================================
   WSG · FUNDAMENT-TOKENS  (Phase 0 · freigegeben 17.07.2026)
   Radien/Schatten/Motion · semantische Zustände · Formularfelder
   (Elementor Pro Forms) · Fließtext (Listen/Zitat/Tabelle) · Bild-Filter.
   Werte aus Designsystem_WSG.html + Token-Vorschau (Robert-Freigabe 17.07.).
   Bereichs-Akzent = semantische Global-Farbe Bereich-Ink (erbt je .bereich-b*).
   =================================================================== */
:root{
  --wsg-r-sm:3px; --wsg-r-input:4px; --wsg-r-md:6px; --wsg-r-lg:16px;
  --wsg-sh-sm:0 1px 4px rgba(17,17,17,.12);
  --wsg-sh-md:0 4px 12px rgba(17,17,17,.13);
  --wsg-sh-lg:0 14px 30px rgba(17,17,17,.17);
  --wsg-error:#c0392b;
  --wsg-success:#2e7d32;
  --wsg-motion-fast:.15s ease;
  --wsg-motion-base:.22s ease;
  /* Akzent-Fallback (neutral = Gruppe-Ink); je .bereich-b* über Bereich-Ink überschrieben */
  --wsg-accent:#6e7780;
}

/* --- Formularfelder (Elementor Pro Forms) --- */
.elementor-field-group .elementor-field-textual{
  font-family:"Atkinson Hyperlegible Next",sans-serif; font-size:16px; color:#111 !important;
  background:#f5f6f7 !important; border:1px solid #d4d8dc !important; border-radius:var(--wsg-r-input) !important;
  padding:13px 14px; transition:border-color var(--wsg-motion-fast), background var(--wsg-motion-fast);
}
.elementor-field-group .elementor-field-textual::placeholder{ color:#9aa3ab; }
.elementor-field-group .elementor-field-textual:focus{
  outline:2px solid var(--wsg-accent); outline-offset:1px; border:1px solid var(--wsg-accent) !important; background:#e8eaed !important;
}
.elementor-field-group > label.elementor-field-label{
  font-family:"Red Hat Mono",monospace !important; font-weight:500 !important; font-size:12px !important; letter-spacing:.04em !important;
  text-transform:uppercase !important; color:#6e7780 !important; margin-bottom:6px;
}
.elementor-field-required > label .elementor-field-label:after,
.elementor-field-required label.elementor-field-label:after{ color:var(--wsg-accent); }
.elementor-field-type-acceptance input[type=checkbox],
.elementor-field-subgroup input[type=checkbox],
.elementor-field-subgroup input[type=radio]{ accent-color:var(--wsg-accent); width:18px; height:18px; }
.elementor-message.elementor-message-danger{ color:var(--wsg-error); }
.elementor-message.elementor-message-success{ color:var(--wsg-success); }
.elementor-field-group.elementor-error .elementor-field-textual{ border:1px solid var(--wsg-error) !important; background:#fff !important; }

/* --- Fließtext: Listen, Zitat, Tabelle (Text-Editor-Widget) --- */
.elementor-widget-text-editor ul,
.elementor-widget-text-editor ol{ list-style:none; margin:0 0 1em; padding:0; }
.elementor-widget-text-editor li{ position:relative; padding-left:22px; margin-bottom:8px; }
.elementor-widget-text-editor ul > li::before{
  content:""; position:absolute; left:2px; top:.62em; width:7px; height:7px; border-radius:50%; background:var(--wsg-accent);
}
.elementor-widget-text-editor ol{ counter-reset:wsgli; }
.elementor-widget-text-editor ol > li{ counter-increment:wsgli; }
.elementor-widget-text-editor ol > li::before{
  content:counter(wsgli)"."; position:absolute; left:0; top:0;
  font-family:"Red Hat Mono",monospace; font-weight:500; font-size:1em; color:var(--wsg-accent);
}
.elementor-widget-text-editor blockquote{
  margin:1em 0; padding:6px 0 6px 22px; border-left:3px solid #808b95;
  font-style:italic; font-size:1.12em; line-height:1.55;
}
.elementor-widget-text-editor blockquote cite{
  display:block; font-family:"Red Hat Mono",monospace; font-style:normal; font-size:.72em;
  letter-spacing:.04em; color:#6e7780; margin-top:10px;
}
.elementor-widget-text-editor table{ width:100%; border-collapse:collapse; }
.elementor-widget-text-editor table th,
.elementor-widget-text-editor table td{ text-align:left; padding:11px 14px; border:1px solid #b2b2b2; }
.elementor-widget-text-editor table th{
  font-family:"Red Hat Mono",monospace; font-weight:500; font-size:12px; letter-spacing:.08em;
  text-transform:uppercase; color:#6e7780; background:#f5f6f7;
}
.elementor-widget-text-editor table tbody tr:nth-child(even){ background:#fafbfb; }

/* --- Bild-Behandlung (Deko entsättigt; Marken-Tint via Elementor-Overlay #6e7780 multiply) --- */
.wsg-img-deko img, .wsg-img-deko{ filter:saturate(0) contrast(1.04); }
/* Regel: Filter nie animieren (Perf/A11y). Bereich-Ink für Marker via .bereich-b*. */

/* --- Kicker (Eyebrow) · .wsg-kicker auf Heading-Widget (Tag div) — freigegeben 17.07. --- */
/* !important auf Typo/Farbe: schlaegt Elementors Heading-Default (gleiche Spezifitaet, spaeter im Cascade) — wie Button-System. */
.wsg-kicker .elementor-heading-title{
  display:inline-flex; align-items:center; gap:12px; white-space:nowrap;
  font-family:"Red Hat Mono",monospace !important; font-weight:500 !important;
  font-size:14px !important; line-height:1.4; letter-spacing:.10em !important;
  text-transform:uppercase; color:var(--wsg-accent) !important;
}
.wsg-kicker .elementor-heading-title::before{ content:""; width:30px; height:2px; background:currentColor; flex:none; }
.wsg-kicker--ondark .elementor-heading-title{ color:var(--e-global-color-46cce157,#808b95) !important; }
@media(max-width:767px){ .wsg-kicker .elementor-heading-title::before{ width:24px; } }

/* Akzent (--wsg-accent) pro Bereich DIREKT setzen — nested var() schaltet nicht um (verifiziert 17.07.). Neutral = Gruppe-Ink (:root). */
.bereich-b1{ --wsg-accent:#e3051b; }
.bereich-b2{ --wsg-accent:#04396b; }
.bereich-b3{ --wsg-accent:#007db3; }
.bereich-b4{ --wsg-accent:#008760; }

/* Section-Heading (Komposition: Kicker + Heading + optional Intro) */
.wsg-sh{max-width:620px}
.wsg-sh--center{margin-left:auto;margin-right:auto;text-align:center}
.wsg-sh--center .wsg-kicker .elementor-heading-title{justify-content:center}

/* ===== Leistungs-Card (.wsg-card) — Designsystem-Spec, Abstände auf 8px-Skala ===== */
.wsg-card-grid{display:grid !important;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px}
.wsg-card{display:flex;flex-direction:column;padding:24px;overflow:hidden;background:linear-gradient(160deg,#fff 0%,#fcfcfd 60%,#f7f8f9 100%);border:1px solid #e6e8ea;border-radius:6px;transition:all .22s ease;text-decoration:none}
.wsg-card--b1{border-top:3px solid #e3051b}.wsg-card--b2{border-top:3px solid #04396b}.wsg-card--b3{border-top:3px solid #007db3}.wsg-card--b4{border-top:3px solid #008760}
.wsg-card:hover{box-shadow:0 10px 24px rgba(17,17,17,.08)}
.wsg-card--b1:hover{border-color:#cc0518}.wsg-card--b2:hover{border-color:#03284b}.wsg-card--b3:hover{border-color:#006a99}.wsg-card--b4:hover{border-color:#007a56}
.wsg-card__top{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.wsg-card__icon{width:54px;height:54px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fff;box-shadow:0 2px 8px rgba(17,17,17,.06);transition:background .25s ease;flex:none}
.wsg-card__icon .elementor-icon{font-size:24px}
.wsg-card__icon i,.wsg-card__icon svg{font-size:24px !important;width:24px;height:24px;line-height:1}
.wsg-card--b1 .wsg-card__icon i{color:#e3051b}.wsg-card--b2 .wsg-card__icon i{color:#04396b}.wsg-card--b3 .wsg-card__icon i{color:#007db3}.wsg-card--b4 .wsg-card__icon i{color:#008760}
.wsg-card--b1:hover .wsg-card__icon{background:#e3051b}.wsg-card--b2:hover .wsg-card__icon{background:#04396b}.wsg-card--b3:hover .wsg-card__icon{background:#007db3}.wsg-card--b4:hover .wsg-card__icon{background:#008760}
.wsg-card:hover .wsg-card__icon i{color:#fff}
.wsg-card__num .elementor-heading-title{font-family:"Red Hat Mono",monospace !important;font-weight:500 !important;font-size:34px !important;line-height:1 !important;color:#c3c8ce !important}
.wsg-card__label{margin:0 0 8px}
.wsg-card__label .elementor-heading-title{font-family:"Red Hat Mono",monospace !important;font-weight:500 !important;font-size:12px !important;letter-spacing:.05em !important;text-transform:uppercase !important;line-height:1.4 !important}
.wsg-card--b1 .wsg-card__label .elementor-heading-title{color:#e3051b !important}.wsg-card--b2 .wsg-card__label .elementor-heading-title{color:#04396b !important}.wsg-card--b3 .wsg-card__label .elementor-heading-title{color:#007db3 !important}.wsg-card--b4 .wsg-card__label .elementor-heading-title{color:#008760 !important}
.wsg-card__title{margin:0 0 8px}
.wsg-card__title .elementor-heading-title{font-family:"Red Hat Display",sans-serif !important;font-weight:600 !important;font-size:20px !important;line-height:1.2 !important;color:#111 !important}
.wsg-card__text .elementor-widget-container,.wsg-card__text p{font-family:"Atkinson Hyperlegible Next","Atkinson Hyperlegible",sans-serif;font-size:16px;line-height:1.6;color:#3a3f44;margin:0}
.wsg-card__link{display:inline-flex;align-items:center;gap:8px;margin-top:24px}
.wsg-card__link .elementor-heading-title{font-family:"Atkinson Hyperlegible Next","Atkinson Hyperlegible",sans-serif !important;font-weight:700 !important;font-size:15px !important;line-height:1.2 !important}
.wsg-card--b1 .wsg-card__link .elementor-heading-title,.wsg-card--b1 .wsg-card__arrow i{color:#e3051b !important}.wsg-card--b2 .wsg-card__link .elementor-heading-title,.wsg-card--b2 .wsg-card__arrow i{color:#04396b !important}.wsg-card--b3 .wsg-card__link .elementor-heading-title,.wsg-card--b3 .wsg-card__arrow i{color:#007db3 !important}.wsg-card--b4 .wsg-card__link .elementor-heading-title,.wsg-card--b4 .wsg-card__arrow i{color:#008760 !important}
.wsg-card__arrow i{font-size:14px !important;transition:transform .25s ease}
.wsg-card:hover .wsg-card__arrow i{transform:translateX(5px)}
/* FA inline-SVG fix: Elementor rendert FA-Icons als <svg> → Farbe über color/fill statt <i> */
.wsg-card__icon .elementor-icon,.wsg-card__icon svg{width:24px;height:24px}
.wsg-card--b1 .wsg-card__icon .elementor-icon,.wsg-card--b1 .wsg-card__icon svg{color:#e3051b !important;fill:#e3051b !important}
.wsg-card--b2 .wsg-card__icon .elementor-icon,.wsg-card--b2 .wsg-card__icon svg{color:#04396b !important;fill:#04396b !important}
.wsg-card--b3 .wsg-card__icon .elementor-icon,.wsg-card--b3 .wsg-card__icon svg{color:#007db3 !important;fill:#007db3 !important}
.wsg-card--b4 .wsg-card__icon .elementor-icon,.wsg-card--b4 .wsg-card__icon svg{color:#008760 !important;fill:#008760 !important}
.wsg-card:hover .wsg-card__icon .elementor-icon,.wsg-card:hover .wsg-card__icon svg{color:#fff !important;fill:#fff !important}
.wsg-card--b1 .wsg-card__arrow .elementor-icon,.wsg-card--b1 .wsg-card__arrow svg{color:#e3051b !important;fill:#e3051b !important}
.wsg-card--b2 .wsg-card__arrow .elementor-icon,.wsg-card--b2 .wsg-card__arrow svg{color:#04396b !important;fill:#04396b !important}
.wsg-card--b3 .wsg-card__arrow .elementor-icon,.wsg-card--b3 .wsg-card__arrow svg{color:#007db3 !important;fill:#007db3 !important}
.wsg-card--b4 .wsg-card__arrow .elementor-icon,.wsg-card--b4 .wsg-card__arrow svg{color:#008760 !important;fill:#008760 !important}
.wsg-card__arrow .elementor-icon,.wsg-card__arrow svg{width:14px;height:14px}
/* arrow-transform-svg-fix: Pfeil ist <svg> → Transform auf .elementor-icon/svg */
.wsg-card__arrow .elementor-icon,.wsg-card__arrow svg{transition:transform .25s ease}
.wsg-card:hover .wsg-card__arrow .elementor-icon,.wsg-card:hover .wsg-card__arrow svg{transform:translateX(5px)}
/* card-layout-override: Elementor-Container-CSS schlägt reine Klassen → Layout mit !important durchsetzen */
.wsg-card{padding:24px !important;border-radius:6px !important}
.wsg-card__top{display:flex !important;flex-direction:row !important;justify-content:space-between !important;align-items:center !important;margin-bottom:16px !important}
.wsg-card__icon{display:flex !important;align-items:center !important;justify-content:center !important}
.wsg-card__icon .elementor-icon-wrapper{display:flex;align-items:center;justify-content:center;width:100%;height:100%;margin:0;line-height:0}
.wsg-card__icon .elementor-icon,.wsg-card__icon svg{width:24px !important;height:24px !important;font-size:24px !important}
.wsg-card__num .elementor-heading-title{text-align:right !important}
.wsg-card__label{margin:0 0 8px !important}
.wsg-card__title{margin:0 0 8px !important}
.wsg-card__text{margin:0 !important}
.wsg-card__link{margin-top:24px !important;align-items:center !important}
.wsg-card__arrow .elementor-icon,.wsg-card__arrow svg{width:14px !important;height:14px !important;font-size:14px !important}
/* ===== Hero dunkel + Marken-Kachel-Raster ===== */
.wsg-hero__inner{display:grid !important;grid-template-columns:1fr 1fr;gap:48px;align-items:center;width:100%}
.wsg-hero__cta{display:flex !important;flex-direction:row !important;gap:16px !important;margin-top:24px !important;flex-wrap:wrap}
.wsg-marken{display:grid !important;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:0;min-height:420px}
.wsg-kachel{position:relative !important;display:flex !important;flex-direction:column !important;justify-content:flex-end !important;padding:32px !important;overflow:hidden;text-shadow:0 1px 14px rgba(0,0,0,.55);transition:background .3s ease;text-decoration:none}
.wsg-kachel:nth-child(1),.wsg-kachel:nth-child(3){border-right:1px solid rgba(255,255,255,.30)}
.wsg-kachel:nth-child(1),.wsg-kachel:nth-child(2){border-bottom:1px solid rgba(255,255,255,.30)}
.wsg-kachel__logo{position:absolute !important;top:32px !important;left:32px !important;right:32px !important;height:26px;display:flex !important;align-items:center;margin:0 !important}
.wsg-kachel__logo img{height:24px;width:auto;max-width:100%;object-fit:contain}
.wsg-kachel__name .elementor-heading-title{color:#fff !important}
.wsg-kachel__bot{display:flex !important;flex-direction:row !important;align-items:center !important;justify-content:space-between !important;gap:12px !important;margin-top:8px !important}
.wsg-kachel__tag .elementor-heading-title{font-family:"Red Hat Mono",monospace !important;font-weight:500 !important;font-size:12px !important;letter-spacing:.06em !important;text-transform:uppercase !important;color:rgba(255,255,255,.86) !important;line-height:1.4 !important}
.wsg-kachel__arrow{flex:none !important;width:38px !important;height:38px !important;border-radius:50% !important;display:flex !important;align-items:center !important;justify-content:center !important;transition:transform .2s ease}
.wsg-kachel__arrow .elementor-icon-wrapper{display:flex;align-items:center;justify-content:center;width:100%;height:100%;margin:0;line-height:0}
.wsg-kachel__arrow .elementor-icon,.wsg-kachel__arrow svg,.wsg-kachel__arrow i{width:16px !important;height:16px !important;font-size:16px !important;color:#fff !important;fill:#fff !important}
.wsg-kachel--b1 .wsg-kachel__arrow{background:#fa0820}.wsg-kachel--b2 .wsg-kachel__arrow{background:#3691f5}.wsg-kachel--b3 .wsg-kachel__arrow{background:#009fe3}.wsg-kachel--b4 .wsg-kachel__arrow{background:#00976b}
.wsg-kachel--b1:hover{background:rgba(227,5,27,.50)}.wsg-kachel--b2:hover{background:rgba(4,57,107,.55)}.wsg-kachel--b3:hover{background:rgba(0,125,179,.50)}.wsg-kachel--b4:hover{background:rgba(0,135,96,.52)}
.wsg-kachel:hover .wsg-kachel__arrow{transform:translateX(3px)}
@media(max-width:820px){.wsg-hero__inner{grid-template-columns:1fr;gap:32px}}
@media(max-width:767px){.wsg-kachel{padding:24px !important}.wsg-kachel__logo{top:24px !important;left:24px !important;right:24px !important}}
.wsg-kachel__name .elementor-heading-title{font-family:"Red Hat Display",sans-serif !important;font-weight:600 !important}

/* hero-vcenter-fix */
.wsg-hero__inner{align-items:center !important}

/* hero-tile-layout-fix */
.wsg-marken{min-height:420px !important}
.wsg-kachel{justify-content:space-between !important}
.wsg-kachel__logo{position:static !important;top:auto !important;left:auto !important;right:auto !important;height:28px;margin:0 !important}

/* fensterkreuz-fix: durchgehendes Kreuz statt Einzelkachel-Raender + cursor */
.wsg-kachel{border:0 !important;cursor:pointer}
.wsg-marken{position:relative}
.wsg-marken::before{content:'';position:absolute;top:0;bottom:0;left:50%;width:1px;transform:translateX(-0.5px);background:rgba(255,255,255,.30);z-index:2;pointer-events:none}
.wsg-marken::after{content:'';position:absolute;left:0;right:0;top:50%;height:1px;transform:translateY(-0.5px);background:rgba(255,255,255,.30);z-index:2;pointer-events:none}

/* fensterkreuz-v2: Innenkanten-Raender (lueckenlos), Pseudos aus */
.wsg-marken::before,.wsg-marken::after{content:none !important}
.wsg-kachel--b1{border-right:1px solid rgba(255,255,255,.30) !important;border-bottom:1px solid rgba(255,255,255,.30) !important}
.wsg-kachel--b2{border-left:1px solid rgba(255,255,255,.30) !important;border-bottom:1px solid rgba(255,255,255,.30) !important}
.wsg-kachel--b3{border-right:1px solid rgba(255,255,255,.30) !important;border-top:1px solid rgba(255,255,255,.30) !important}
.wsg-kachel--b4{border-left:1px solid rgba(255,255,255,.30) !important;border-top:1px solid rgba(255,255,255,.30) !important}

/* fensterkreuz-v3: EINE Linie pro Innenkante (kein Doppelkreuz) */
.wsg-kachel{border:0 !important;cursor:pointer}
.wsg-kachel--b1{border-right:1px solid rgba(255,255,255,.30) !important;border-bottom:1px solid rgba(255,255,255,.30) !important}
.wsg-kachel--b2{border-bottom:1px solid rgba(255,255,255,.30) !important}
.wsg-kachel--b3{border-right:1px solid rgba(255,255,255,.30) !important}

/* marken-gap-zero: Elementor-Default-Gap (20px) killt das Fensterkreuz */
.wsg-marken{gap:0 !important;grid-gap:0 !important;column-gap:0 !important;row-gap:0 !important}

/* ===== wsg-global-gutter: globale responsive Sektions-Seitenabstaende ===== */
:root{--wsg-gutter:48px}
@media(max-width:1024px){:root{--wsg-gutter:32px}}
@media(max-width:767px){:root{--wsg-gutter:16px}}
.e-con.e-parent:not(.wsg-bleed){--padding-left:var(--wsg-gutter) !important;--padding-right:var(--wsg-gutter) !important;padding-left:var(--wsg-gutter) !important;padding-right:var(--wsg-gutter) !important}
.wsg-hero{--padding-left:max(var(--wsg-gutter),calc((100vw - 1240px)/2)) !important;--padding-right:max(var(--wsg-gutter),calc((100vw - 1240px)/2)) !important;padding-left:max(var(--wsg-gutter),calc((100vw - 1240px)/2)) !important;padding-right:max(var(--wsg-gutter),calc((100vw - 1240px)/2)) !important}
/* Referenz-Label in Vollbild-Sektionen auf Gutter einruecken */
.wsg-ref-label{padding-left:var(--wsg-gutter) !important;padding-right:var(--wsg-gutter) !important}

/* wsg-hero-inner-nopad: Elementor-Default-Padding im Hero nullen (Inhalt buendig auf Gutter) */
.wsg-hero__inner{padding:0 !important}
.wsg-hero__inner > .e-con{padding:0 !important}

/* wsg-tame-default-padding: Elementor 10px-Default-Container-Padding global auf 0 (verschachtelte Container). Explizite/physische Paddings der Komponenten bleiben. */
:where(.e-con.e-child){--padding-block-start:0px;--padding-block-end:0px;--padding-inline-start:0px;--padding-inline-end:0px}

/* wsg-hero-vpad: vertikales Sektions-Padding im Hero wiederherstellen (Tame hatte --padding-block-* genullt). Innerhalb gelöst → Hintergrundbild bleibt full-bleed. */
.e-con.e-child.wsg-hero{--padding-block-start:56px !important;--padding-block-end:56px !important}

/* ===== CTA-Band (.wsg-cta) — 20.07. ===== */
.wsg-cta{display:flex !important;flex-direction:row !important;flex-wrap:wrap !important;align-items:center !important;justify-content:space-between !important;gap:40px !important;padding:40px 48px !important;border-radius:8px !important;overflow:hidden}
.wsg-cta__text{display:flex !important;flex-direction:column !important;align-items:flex-start !important;gap:8px !important;max-width:60ch}
.wsg-cta__kicker,.wsg-cta__kicker .elementor-heading-title{font-family:"Red Hat Mono",monospace !important;font-weight:500 !important;font-size:14px !important;letter-spacing:.10em !important;text-transform:uppercase !important;line-height:1.4 !important;color:rgba(255,255,255,.82) !important;margin:0 !important}
.wsg-cta__title,.wsg-cta__title .elementor-heading-title{font-family:"Red Hat Display",sans-serif !important;font-weight:800 !important;font-size:32px !important;line-height:1.15 !important;color:#fff !important;margin:0 !important}
.wsg-cta--b1{background:#e3051b}.wsg-cta--b2{background:#04396b}.wsg-cta--b3{background:#007db3}.wsg-cta--b4{background:#008760}
.wsg-cta--dark{background:#14181c}
.wsg-cta .wsg-btn{flex:none}
@media(max-width:1024px){.wsg-cta{padding:40px 32px !important;gap:32px !important}}
@media(max-width:767px){.wsg-cta{flex-direction:column !important;align-items:flex-start !important;padding:24px 16px !important;gap:24px !important}.wsg-cta__title{font-size:27px !important}}

.wsg-cta__intro,.wsg-cta__intro p{font-family:"Atkinson Hyperlegible Next",sans-serif !important;font-weight:400 !important;font-size:17px !important;line-height:1.6 !important;color:rgba(255,255,255,.9) !important}
.wsg-cta__intro{margin:8px 0 0 !important;max-width:54ch}
.wsg-cta__intro p{margin:0 !important}

/* ===== CTA Vollbild + Parallax + Overlay (.wsg-cta-img) — 20.07. ===== */
.wsg-cta-img{position:relative;overflow:hidden}
.wsg-cta-img__inner{position:relative;z-index:1;max-width:1240px;margin-inline:auto;display:flex !important;flex-direction:column !important;align-items:center !important;text-align:center !important;gap:16px !important;padding-top:96px !important;padding-bottom:96px !important;padding-left:var(--wsg-gutter) !important;padding-right:var(--wsg-gutter) !important}
.wsg-cta-img__kicker,.wsg-cta-img__kicker .elementor-heading-title{font-family:"Red Hat Mono",monospace !important;font-weight:500 !important;font-size:14px !important;letter-spacing:.10em !important;text-transform:uppercase !important;line-height:1.4 !important;color:rgba(255,255,255,.82) !important;margin:0 !important}
.wsg-cta-img__title,.wsg-cta-img__title .elementor-heading-title{font-family:"Red Hat Display",sans-serif !important;font-weight:800 !important;font-size:34px !important;line-height:1.12 !important;color:#fff !important;margin:0 !important;max-width:22ch}
.wsg-cta-img__intro,.wsg-cta-img__intro p{font-family:"Atkinson Hyperlegible Next",sans-serif !important;font-weight:400 !important;font-size:18px !important;line-height:1.6 !important;color:rgba(255,255,255,.9) !important;margin:0 !important}
.wsg-cta-img__intro{max-width:56ch}
.wsg-cta-img__cta{margin-top:8px !important}
@media(max-width:1024px){.wsg-cta-img__inner{padding-top:64px !important;padding-bottom:64px !important}}
@media(max-width:767px){.wsg-cta-img__inner{padding-top:40px !important;padding-bottom:40px !important}.wsg-cta-img__title{font-size:27px !important}.wsg-cta-img{background-attachment:scroll !important}}

/* wsg-cta-img-center: Inhalt horizontal zentrieren (Elementor-Default align-items:stretch schlägt sonst margin:auto) */
.wsg-cta-img{display:flex !important;flex-direction:column !important;align-items:center !important;justify-content:center !important}

/* ===== Kontaktformular: Breite + Submit (Feld-Tokens existieren schon) — 20.07. ===== */
.wsg-form{width:100% !important}
.wsg-form .elementor-button{font-family:"Red Hat Display",sans-serif !important;font-weight:800 !important;font-size:16px !important;line-height:1 !important;background:var(--wsg-accent) !important;border:1.5px solid var(--wsg-accent) !important;color:#fff !important;border-radius:var(--wsg-r-input) !important;padding:14px 26px !important;cursor:pointer;display:inline-flex;align-items:center;gap:8px;-webkit-font-smoothing:antialiased;transition:filter var(--wsg-motion-fast)}
.wsg-form .elementor-button:hover{filter:brightness(.9)}

/* ===== Kontaktformular v2: Icons vor Labels + Submit + MB-Fokus — 20.07. ===== */
.wsg-form .elementor-button{flex:0 0 auto !important;width:auto !important;display:inline-flex !important;align-self:flex-start !important}
.wsg-form .elementor-field-group-name .elementor-field-label,
.wsg-form .elementor-field-group-firma .elementor-field-label,
.wsg-form .elementor-field-group-email .elementor-field-label,
.wsg-form .elementor-field-group-telefon .elementor-field-label,
.wsg-form .elementor-field-group-nachricht .elementor-field-label,
.wsg-form .elementor-field-group-datei .elementor-field-label{display:inline-flex;align-items:center}
.wsg-form .elementor-field-group-name .elementor-field-label::before,
.wsg-form .elementor-field-group-firma .elementor-field-label::before,
.wsg-form .elementor-field-group-email .elementor-field-label::before,
.wsg-form .elementor-field-group-telefon .elementor-field-label::before,
.wsg-form .elementor-field-group-nachricht .elementor-field-label::before,
.wsg-form .elementor-field-group-datei .elementor-field-label::before{content:"";width:1em;height:1em;flex:none;margin-right:8px;background:var(--wsg-accent);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain}
.wsg-form .elementor-field-group-name .elementor-field-label::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20448%20512%27%3E%3Cpath%20d%3D%27M224%20256A128%20128%200%201%200%20224%200a128%20128%200%201%200%200%20256zm-45.7%2048C79.8%20304%200%20383.8%200%20482.3C0%20498.7%2013.3%20512%2029.7%20512l388.6%200c16.4%200%2029.7-13.3%2029.7-29.7C448%20383.8%20368.2%20304%20269.7%20304l-91.4%200z%27%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20448%20512%27%3E%3Cpath%20d%3D%27M224%20256A128%20128%200%201%200%20224%200a128%20128%200%201%200%200%20256zm-45.7%2048C79.8%20304%200%20383.8%200%20482.3C0%20498.7%2013.3%20512%2029.7%20512l388.6%200c16.4%200%2029.7-13.3%2029.7-29.7C448%20383.8%20368.2%20304%20269.7%20304l-91.4%200z%27%2F%3E%3C%2Fsvg%3E")}
.wsg-form .elementor-field-group-firma .elementor-field-label::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20384%20512%27%3E%3Cpath%20d%3D%27M48%200C21.5%200%200%2021.5%200%2048L0%20464c0%2026.5%2021.5%2048%2048%2048l96%200%200-80c0-26.5%2021.5-48%2048-48s48%2021.5%2048%2048l0%2080%2096%200c26.5%200%2048-21.5%2048-48l0-416c0-26.5-21.5-48-48-48L48%200zM64%20240c0-8.8%207.2-16%2016-16l32%200c8.8%200%2016%207.2%2016%2016l0%2032c0%208.8-7.2%2016-16%2016l-32%200c-8.8%200-16-7.2-16-16l0-32zm112-16l32%200c8.8%200%2016%207.2%2016%2016l0%2032c0%208.8-7.2%2016-16%2016l-32%200c-8.8%200-16-7.2-16-16l0-32c0-8.8%207.2-16%2016-16zm80%2016c0-8.8%207.2-16%2016-16l32%200c8.8%200%2016%207.2%2016%2016l0%2032c0%208.8-7.2%2016-16%2016l-32%200c-8.8%200-16-7.2-16-16l0-32zM80%2096l32%200c8.8%200%2016%207.2%2016%2016l0%2032c0%208.8-7.2%2016-16%2016l-32%200c-8.8%200-16-7.2-16-16l0-32c0-8.8%207.2-16%2016-16zm80%2016c0-8.8%207.2-16%2016-16l32%200c8.8%200%2016%207.2%2016%2016l0%2032c0%208.8-7.2%2016-16%2016l-32%200c-8.8%200-16-7.2-16-16l0-32zM272%2096l32%200c8.8%200%2016%207.2%2016%2016l0%2032c0%208.8-7.2%2016-16%2016l-32%200c-8.8%200-16-7.2-16-16l0-32c0-8.8%207.2-16%2016-16z%27%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20384%20512%27%3E%3Cpath%20d%3D%27M48%200C21.5%200%200%2021.5%200%2048L0%20464c0%2026.5%2021.5%2048%2048%2048l96%200%200-80c0-26.5%2021.5-48%2048-48s48%2021.5%2048%2048l0%2080%2096%200c26.5%200%2048-21.5%2048-48l0-416c0-26.5-21.5-48-48-48L48%200zM64%20240c0-8.8%207.2-16%2016-16l32%200c8.8%200%2016%207.2%2016%2016l0%2032c0%208.8-7.2%2016-16%2016l-32%200c-8.8%200-16-7.2-16-16l0-32zm112-16l32%200c8.8%200%2016%207.2%2016%2016l0%2032c0%208.8-7.2%2016-16%2016l-32%200c-8.8%200-16-7.2-16-16l0-32c0-8.8%207.2-16%2016-16zm80%2016c0-8.8%207.2-16%2016-16l32%200c8.8%200%2016%207.2%2016%2016l0%2032c0%208.8-7.2%2016-16%2016l-32%200c-8.8%200-16-7.2-16-16l0-32zM80%2096l32%200c8.8%200%2016%207.2%2016%2016l0%2032c0%208.8-7.2%2016-16%2016l-32%200c-8.8%200-16-7.2-16-16l0-32c0-8.8%207.2-16%2016-16zm80%2016c0-8.8%207.2-16%2016-16l32%200c8.8%200%2016%207.2%2016%2016l0%2032c0%208.8-7.2%2016-16%2016l-32%200c-8.8%200-16-7.2-16-16l0-32zM272%2096l32%200c8.8%200%2016%207.2%2016%2016l0%2032c0%208.8-7.2%2016-16%2016l-32%200c-8.8%200-16-7.2-16-16l0-32c0-8.8%207.2-16%2016-16z%27%2F%3E%3C%2Fsvg%3E")}
.wsg-form .elementor-field-group-email .elementor-field-label::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20512%20512%27%3E%3Cpath%20d%3D%27M48%2064C21.5%2064%200%2085.5%200%20112c0%2015.1%207.1%2029.3%2019.2%2038.4L236.8%20313.6c11.4%208.5%2027%208.5%2038.4%200L492.8%20150.4c12.1-9.1%2019.2-23.3%2019.2-38.4c0-26.5-21.5-48-48-48L48%2064zM0%20176L0%20384c0%2035.3%2028.7%2064%2064%2064l384%200c35.3%200%2064-28.7%2064-64l0-208L294.4%20339.2c-22.8%2017.1-54%2017.1-76.8%200L0%20176z%27%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20512%20512%27%3E%3Cpath%20d%3D%27M48%2064C21.5%2064%200%2085.5%200%20112c0%2015.1%207.1%2029.3%2019.2%2038.4L236.8%20313.6c11.4%208.5%2027%208.5%2038.4%200L492.8%20150.4c12.1-9.1%2019.2-23.3%2019.2-38.4c0-26.5-21.5-48-48-48L48%2064zM0%20176L0%20384c0%2035.3%2028.7%2064%2064%2064l384%200c35.3%200%2064-28.7%2064-64l0-208L294.4%20339.2c-22.8%2017.1-54%2017.1-76.8%200L0%20176z%27%2F%3E%3C%2Fsvg%3E")}
.wsg-form .elementor-field-group-telefon .elementor-field-label::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20512%20512%27%3E%3Cpath%20d%3D%27M164.9%2024.6c-7.7-18.6-28-28.5-47.4-23.2l-88%2024C12.1%2030.2%200%2046%200%2064C0%20311.4%20200.6%20512%20448%20512c18%200%2033.8-12.1%2038.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3%2011.6L304.7%20368C234.3%20334.7%20177.3%20277.7%20144%20207.3L193.3%20167c13.7-11.2%2018.4-30%2011.6-46.3l-40-96z%27%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20512%20512%27%3E%3Cpath%20d%3D%27M164.9%2024.6c-7.7-18.6-28-28.5-47.4-23.2l-88%2024C12.1%2030.2%200%2046%200%2064C0%20311.4%20200.6%20512%20448%20512c18%200%2033.8-12.1%2038.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3%2011.6L304.7%20368C234.3%20334.7%20177.3%20277.7%20144%20207.3L193.3%20167c13.7-11.2%2018.4-30%2011.6-46.3l-40-96z%27%2F%3E%3C%2Fsvg%3E")}
.wsg-form .elementor-field-group-nachricht .elementor-field-label::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20512%20512%27%3E%3Cpath%20d%3D%27M512%20240c0%20114.9-114.6%20208-256%20208c-37.1%200-72.3-6.4-104.1-17.9c-11.9%208.7-31.3%2020.6-54.3%2030.6C73.6%20471.1%2044.7%20480%2016%20480c-6.5%200-12.3-3.9-14.8-9.9c-2.5-6-1.1-12.8%203.4-17.4l.3-.3c.3-.3%20.7-.7%201.3-1.4c1.1-1.2%202.8-3.1%204.9-5.7c4.1-5%209.6-12.4%2015.2-21.6c10-16.6%2019.5-38.4%2021.4-62.9C21.4%20355%200%20302.5%200%20240C0%20125.1%20114.6%2032%20256%2032s256%2093.1%20256%20208z%27%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20512%20512%27%3E%3Cpath%20d%3D%27M512%20240c0%20114.9-114.6%20208-256%20208c-37.1%200-72.3-6.4-104.1-17.9c-11.9%208.7-31.3%2020.6-54.3%2030.6C73.6%20471.1%2044.7%20480%2016%20480c-6.5%200-12.3-3.9-14.8-9.9c-2.5-6-1.1-12.8%203.4-17.4l.3-.3c.3-.3%20.7-.7%201.3-1.4c1.1-1.2%202.8-3.1%204.9-5.7c4.1-5%209.6-12.4%2015.2-21.6c10-16.6%2019.5-38.4%2021.4-62.9C21.4%20355%200%20302.5%200%20240C0%20125.1%20114.6%2032%20256%2032s256%2093.1%20256%20208z%27%2F%3E%3C%2Fsvg%3E")}
.wsg-form .elementor-field-group-datei .elementor-field-label::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20448%20512%27%3E%3Cpath%20d%3D%27M364.2%2083.8c-24.4-24.4-64-24.4-88.4%200l-184%20184c-42.1%2042.1-42.1%20110.3%200%20152.4s110.3%2042.1%20152.4%200l152-152c10.9-10.9%2028.7-10.9%2039.6%200s10.9%2028.7%200%2039.6l-152%20152c-64%2064-167.6%2064-231.6%200s-64-167.6%200-231.6l184-184c46.3-46.3%20121.3-46.3%20167.6%200s46.3%20121.3%200%20167.6l-176%20176c-28.6%2028.6-75%2028.6-103.6%200s-28.6-75%200-103.6l144-144c10.9-10.9%2028.7-10.9%2039.6%200s10.9%2028.7%200%2039.6l-144%20144c-6.7%206.7-6.7%2017.7%200%2024.4s17.7%206.7%2024.4%200l176-176c24.4-24.4%2024.4-64%200-88.4z%27%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20448%20512%27%3E%3Cpath%20d%3D%27M364.2%2083.8c-24.4-24.4-64-24.4-88.4%200l-184%20184c-42.1%2042.1-42.1%20110.3%200%20152.4s110.3%2042.1%20152.4%200l152-152c10.9-10.9%2028.7-10.9%2039.6%200s10.9%2028.7%200%2039.6l-152%20152c-64%2064-167.6%2064-231.6%200s-64-167.6%200-231.6l184-184c46.3-46.3%20121.3-46.3%20167.6%200s46.3%20121.3%200%20167.6l-176%20176c-28.6%2028.6-75%2028.6-103.6%200s-28.6-75%200-103.6l144-144c10.9-10.9%2028.7-10.9%2039.6%200s10.9%2028.7%200%2039.6l-144%20144c-6.7%206.7-6.7%2017.7%200%2024.4s17.7%206.7%2024.4%200l176-176c24.4-24.4%2024.4-64%200-88.4z%27%2F%3E%3C%2Fsvg%3E")}
/* MB (bereich-b1): Input-Fokus NICHT rot (rot=Fehler-Fehldeutung) -> neutral dunkelgrau */
.bereich-b1 .wsg-form .elementor-field-group .elementor-field-textual:focus{border:1px solid #43464a !important;outline:2px solid #43464a !important}

/* wsg-form-field-spacing: Feld-Abstände 8er-konform (Reihen 24, Spalten 16) — 20.07. */
.wsg-form .elementor-field-group{margin-bottom:24px !important;padding-left:8px !important;padding-right:8px !important}
.wsg-form .elementor-form-fields-wrapper{margin-left:-8px !important;margin-right:-8px !important}

/* wsg-form-consent: Checkbox an Textzeile ausrichten + Abstand rechts — 20.07. */
.wsg-form .elementor-field-type-acceptance .elementor-field-option{display:flex;align-items:flex-start;gap:10px}
.wsg-form .elementor-field-type-acceptance .elementor-field-option input[type=checkbox]{margin-top:3px;flex:none}

/* wsg-form-hint + hint-group spacing */
.wsg-form .wsg-form-hint{font-family:"Atkinson Hyperlegible Next",sans-serif;font-size:13px;color:#6e7780;display:block}
.wsg-form .elementor-field-group-datei_hint{margin-top:-16px !important}

/* ===== Upload-Dropzone (Screendesign MB) + Button-Icon-Abstand — 20.07. ===== */
.wsg-form .wsg-dropzone{background:#f5f6f7;border:2px dashed #c3c8ce;border-radius:6px;padding:24px;display:flex;flex-direction:column;gap:16px;align-items:flex-start}
.wsg-form .wsg-dropzone__row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.wsg-form .wsg-dropzone input[type=file]{color:#6e7780;font-family:"Atkinson Hyperlegible Next",sans-serif;font-size:14px;width:auto;flex:0 0 auto;background:none !important;border:0 !important;padding:0 !important}
.wsg-form .wsg-dropzone input[type=file]::file-selector-button{margin-right:14px;background-color:#43464a;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath fill='%23ffffff' d='M214.6 72.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 173.3V376c0 17.7 14.3 32 32 32s32-14.3 32-32V173.3l41.4 40.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96zM64 480c-17.7 0-32 14.3-32 32s14.3 32 32 32H320c17.7 0 32-14.3 32-32s-14.3-32-32-32H64z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:18px center;background-size:15px;color:#fff;border:0;border-radius:3px;padding:12px 22px 12px 44px;font-family:"Red Hat Display",sans-serif;font-weight:800;font-size:15px;line-height:1;cursor:pointer;transition:background-color .2s ease}
.wsg-form .wsg-dropzone input[type=file]::file-selector-button:hover{background-color:#2c2e31}
.wsg-form .wsg-dropzone .wsg-form-hint{font-size:13px;color:#6e7780}
.wsg-form .wsg-dropzone__more{font-family:"Red Hat Mono",monospace;font-weight:500;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--wsg-accent);text-decoration:none;cursor:pointer;align-self:flex-start}
.wsg-form .wsg-dropzone__more:hover{text-decoration:underline}
.wsg-btn .elementor-button,a.wsg-btn{gap:12px !important}

/* ===== Dropzone: unter Label (volle Breite) + Hover + Dateiliste (DataTransfer) — 20.07. ===== */
.wsg-form .wsg-dropzone{width:100%;flex:1 0 100%}
.wsg-form .wsg-dropzone:hover{border-color:#9aa3ab}
.wsg-form .wsg-dropzone__list{list-style:none;margin:0;padding:0;width:100%;display:flex;flex-direction:column;gap:8px}
.wsg-form .wsg-dropzone__item{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #e3e6e9;border-radius:4px;padding:8px 12px;font-family:"Atkinson Hyperlegible Next",sans-serif;font-size:14px;color:#111}
.wsg-form .wsg-dropzone__name{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wsg-form .wsg-dropzone__size{flex:0 0 auto;color:#6e7780;font-size:13px}
.wsg-form .wsg-dropzone__remove{flex:0 0 auto;background:none;border:0;cursor:pointer;font-size:20px;line-height:1;color:#6e7780;padding:0 6px;border-radius:3px}
.wsg-form .wsg-dropzone__remove:hover{color:var(--wsg-error,#d51317)}

/* ===== Dropzone Datei-Zeile: X größer + Hover rot (Zeile + X) — 20.07. ===== */
.wsg-form .wsg-dropzone__item{transition:background-color .15s ease,border-color .15s ease}
.wsg-form .wsg-dropzone__item:hover{background:rgba(213,19,23,.06);border-color:rgba(213,19,23,.30)}
.wsg-form .wsg-dropzone__remove{font-size:26px;transition:color .15s ease}
.wsg-form .wsg-dropzone__remove:hover{color:var(--wsg-error,#d51317)}

/* ===== Dropzone: X-Hover färbt nur das Glyph (Zeilen-Tönung dort unterdrückt) — 20.07. ===== */
.wsg-form .wsg-dropzone__remove{background:none}
.wsg-form .wsg-dropzone__remove:hover{color:var(--wsg-error,#d51317) !important;background:none !important}
.wsg-form .wsg-dropzone__item:has(.wsg-dropzone__remove:hover){background:#fff;border-color:#e3e6e9}

/* ===== Dropzone: Zeilen-Toenung NUR bei X-Hover (umgekehrt) — 20.07. ===== */
.wsg-form .wsg-dropzone__item:hover{background:#fff;border-color:#e3e6e9}
.wsg-form .wsg-dropzone__item:has(.wsg-dropzone__remove:hover){background:rgba(213,19,23,.06);border-color:rgba(213,19,23,.30)}

/* ===== Dropzone: X optisch 2px hoch — 20.07. ===== */
.wsg-form .wsg-dropzone__remove{transform:translateY(-2px)}

/* ===== Text + Media-Sektion (.wsg-textmedia) — wiederverwendbar, umkehrbar — 20.07. ===== */
.wsg-textmedia{border-top:1px solid #eceeef}
.wsg-textmedia__inner{display:flex;align-items:center;gap:64px}
.wsg-textmedia__text{flex:1 1 auto;min-width:0}
.wsg-textmedia .wsg-kicker{margin-bottom:12px}
/* Bild-Spalte: Kreis + Akzent-Duoton-Overlay */
.wsg-textmedia__media{flex:0 0 420px;max-width:44%;position:relative;border-radius:50%;overflow:hidden;aspect-ratio:1}
/* Variante: Bild links */
.wsg-textmedia--reverse .wsg-textmedia__inner{flex-direction:row-reverse}
/* Variante: rechteckig (kuenftige, nicht-kreisrunde Sektionen) */
.wsg-textmedia--rect .wsg-textmedia__media{border-radius:var(--wsg-r-lg);aspect-ratio:4/3}
/* Titel (Kit faerbt Headings sonst Primary) */
.wsg-textmedia__title .elementor-heading-title{font-family:"Red Hat Display",sans-serif !important;font-weight:800 !important;font-size:34px !important;line-height:1.15 !important;color:#111 !important;margin:0 0 20px !important;max-width:28ch}
/* Fliesstext */
.wsg-textmedia__body{font-size:18px;line-height:1.6;color:#3a3f44;max-width:54ch}
.wsg-textmedia__body p{margin:0 0 16px}
.wsg-textmedia__body p:last-child{margin-bottom:26px}
/* Textlink mit Pfeil (Button-Widget zurueckgesetzt) */
.wsg-textmedia__link .elementor-button{background:none !important;border:0 !important;padding:0 !important;color:var(--wsg-accent) !important;font-family:"Atkinson Hyperlegible Next",sans-serif !important;font-weight:700 !important;font-size:17px !important;fill:var(--wsg-accent) !important}
.wsg-textmedia__link .elementor-button:hover{text-decoration:underline}
/* Tablet */
@media(max-width:1024px){.wsg-textmedia__inner{gap:40px}.wsg-textmedia__media{flex-basis:340px}}
/* Mobil: stapeln, Bild oben zentriert */
@media(max-width:767px){
 .wsg-textmedia__inner,.wsg-textmedia--reverse .wsg-textmedia__inner{flex-direction:column;gap:32px;align-items:stretch}
 .wsg-textmedia__media{order:-1;flex-basis:auto;width:min(320px,86%);max-width:86%;align-self:center}
 .wsg-textmedia__title .elementor-heading-title{font-size:27px !important}
 .wsg-textmedia__body{font-size:17px}
}

/* ===== Text+Media FIX: Media-Sizing/Kreis gegen Elementor-Container-CSS (!important) — 20.07. ===== */
.wsg-textmedia__text{flex:1 1 auto !important;min-width:0 !important}
.wsg-textmedia__media{flex:0 0 420px !important;width:420px !important;max-width:44% !important;aspect-ratio:1 !important;border-radius:50% !important;overflow:hidden !important;position:relative !important}
@media(max-width:1024px){.wsg-textmedia__media{flex-basis:340px !important;width:340px !important}}
@media(max-width:767px){.wsg-textmedia__media{flex-basis:auto !important;width:min(320px,86%) !important;max-width:86% !important;align-self:center !important}}

/* ===== Split 50/50 (.wsg-split) — Textblock + Bild edge-to-edge — 20.07. ===== */
.e-con.e-parent.wsg-split-sec{--padding-left:0 !important;--padding-right:0 !important;padding-left:0 !important;padding-right:0 !important}
.wsg-split{display:flex !important;flex-direction:row !important;align-items:stretch !important;width:100%}
.wsg-split--reverse{flex-direction:row-reverse !important}
.wsg-split__text{flex:0 0 50% !important;max-width:50% !important;display:flex !important;flex-direction:column !important;justify-content:center !important;padding:96px 64px 96px var(--wsg-gutter) !important}
.wsg-split--reverse .wsg-split__text{padding:96px var(--wsg-gutter) 96px 64px !important}
.wsg-split__media{flex:0 0 50% !important;max-width:50% !important;position:relative !important;overflow:hidden !important}
@media(max-width:1024px){
 .wsg-split__text{padding:64px 40px 64px var(--wsg-gutter) !important}
 .wsg-split--reverse .wsg-split__text{padding:64px var(--wsg-gutter) 64px 40px !important}
}
@media(max-width:767px){
 .wsg-split,.wsg-split--reverse{flex-direction:column !important}
 .wsg-split__text,.wsg-split__media{flex:0 0 auto !important;max-width:100% !important;width:100% !important}
 .wsg-split__media{order:-1;aspect-ratio:4/3}
 .wsg-split__text,.wsg-split--reverse .wsg-split__text{padding:40px var(--wsg-gutter) !important}
}

/* ===== FIX Ref-Label-Ausrichtung: Gutter nur in Bleed-Sektionen (sonst Doppel-Gutter) — 20.07. ===== */
.wsg-ref-label{padding-left:0 !important;padding-right:0 !important}
.wsg-bleed .wsg-ref-label{padding-left:var(--wsg-gutter) !important;padding-right:var(--wsg-gutter) !important}

/* ===== Text+Media Mobil: Bild VOR Text (robust !important) — 20.07. ===== */
@media(max-width:767px){
 .wsg-textmedia__inner{flex-direction:column !important}
 .wsg-textmedia__media{order:-1 !important}
 .wsg-textmedia__text{order:0 !important}
}

/* ===== Split FIX: Text innerhalb Content-Breite (1240) — Bild bleibt edge-to-edge — 20.07. ===== */
.wsg-split__text{padding-left:max(var(--wsg-gutter),calc((100vw - 1240px)/2)) !important}
.wsg-split--reverse .wsg-split__text{padding-left:64px !important;padding-right:max(var(--wsg-gutter),calc((100vw - 1240px)/2)) !important}
@media(max-width:1024px){
 .wsg-split__text{padding-left:max(var(--wsg-gutter),calc((100vw - 1240px)/2)) !important}
 .wsg-split--reverse .wsg-split__text{padding-left:40px !important;padding-right:max(var(--wsg-gutter),calc((100vw - 1240px)/2)) !important}
}

/* ===== Split FIX: Default-Container-Gap weg → Bildkante exakt in Viewport-Mitte — 20.07. ===== */
.wsg-split{gap:0 !important;column-gap:0 !important}

/* ===== Parallax respektiert prefers-reduced-motion (Projektpolicy) — 20.07. ===== */
@media(prefers-reduced-motion:reduce){
 .wsg-split__media .elementor-motion-effects-layer,.wsg-cta-img .elementor-motion-effects-layer{transform:none !important}
}

/* WSG:SEARCH-RESULTS:START */
.wsg-search-results{max-width:1240px!important;margin-inline:auto;padding:80px var(--wsg-gutter,48px)}
.wsg-search-results__title h1{font-size:clamp(2rem,4vw,2.75rem);line-height:1.15;color:#111;margin:0 0 .75em;font-weight:800}
.wsg-search-results__list .elementor-posts{display:flex;flex-direction:column;gap:0}
.wsg-search-results__list article.elementor-post{padding:28px 0;margin:0;border-bottom:1px solid rgba(17,17,17,.12)}
.wsg-search-results__list article.elementor-post:first-child{border-top:1px solid rgba(17,17,17,.12)}
.wsg-search-results__list .elementor-post__thumbnail__link,.wsg-search-results__list .elementor-post__thumbnail{display:none !important}
.wsg-search-results__list .elementor-post__title{font-size:1.5rem!important;line-height:1.3;margin:0 0 .4em;font-weight:700!important}
.wsg-search-results__list .elementor-post__title a{color:#111 !important;font-size:1.5rem!important;font-weight:700!important;line-height:1.3;text-decoration:none;transition:color .2s ease}
.wsg-search-results__list .elementor-post__title a:hover{color:#6e7780 !important}
.wsg-search-results__list .elementor-post__excerpt p{color:#6e7780 !important;font-size:1rem;line-height:1.6;margin:0 0 .6em}
.wsg-search-results__list .elementor-post__excerpt .relevanssi-query-term,.wsg-search-results__list .elementor-post__excerpt strong{background:rgba(0,159,227,.18);color:#111;font-weight:700;padding:0 2px;border-radius:2px}
.wsg-search-results__list .elementor-post__read-more{display:inline-block;color:#111;font-weight:700;text-decoration:none;font-size:.9375rem;transition:color .2s ease}
.wsg-search-results__list .elementor-post__read-more:hover{color:#009fe3}
.wsg-search-results__list .elementor-post__read-more::after{content:" \2192"}
.wsg-search-results__list .elementor-pagination{margin-top:36px;display:flex;gap:8px;justify-content:flex-start;flex-wrap:wrap}
.wsg-search-results__list .elementor-pagination .page-numbers{color:#111;padding:6px 12px;border:1px solid rgba(17,17,17,.14);border-radius:4px;text-decoration:none;font-weight:600}
.wsg-search-results__list .elementor-pagination .page-numbers.current{background:#111;color:#fff;border-color:#111}
.wsg-search-results__list .elementor-posts-nothing-found{color:#6e7780;font-size:1.125rem;padding:24px 0}
@media(max-width:767px){.wsg-search-results{padding:48px var(--wsg-gutter,16px)}}
/* WSG:SEARCH-RESULTS:END */

/* WSG:SECTION-SPACING:START */
:root{--wsg-section:80px}
.wsg-textmedia{padding-top:var(--wsg-section);padding-bottom:var(--wsg-section)}
/* WSG:SECTION-SPACING:END */

/* WSG:TIMELINE:START — Verbindungslinie: native absolute Positionierung in dieser Elementor-Version nicht verfuegbar (_position ohne Optionen), Elementor belegt .e-con::before selbst -> hoehere Spezifitaet + !important. Geprueft 22.07. */
.wsg-timeline-steps.wsg-timeline-steps::before{content:"" !important;position:absolute !important;left:26px !important;top:32px !important;bottom:32px !important;width:2px !important;height:auto !important;background:#e0e3e5 !important;z-index:0 !important;pointer-events:none !important;margin:0 !important;padding:0 !important}
/* WSG:TIMELINE:END */

/* WSG:CARD-COVER:START — Ganzflaechiger Karten/Kachel-Link. Container-Link rendert in Elementor 4.1.4 NICHT als <a>; Overlay-Button = echter, crawlbarer Link + Tastatur/Mittelklick. Parent-gescoped fuer Spezifitaet. Geprueft 22.07. */
.wsg-spez-card,.wsg-kachel{position:relative}
.wsg-spez-card .wsg-card-cover,.wsg-kachel .wsg-card-cover{position:absolute;inset:0;margin:0;padding:0;z-index:4}
.wsg-spez-card .wsg-card-cover .elementor-button-wrapper,.wsg-spez-card .wsg-card-cover .elementor-button,.wsg-kachel .wsg-card-cover .elementor-button-wrapper,.wsg-kachel .wsg-card-cover .elementor-button{position:absolute;inset:0;width:100%;height:100%;min-height:0;margin:0;padding:0;display:block;background:transparent;border:0;border-radius:0;opacity:0;box-shadow:none}
.wsg-spez-card .wsg-card-cover .elementor-button:focus-visible,.wsg-kachel .wsg-card-cover .elementor-button:focus-visible{opacity:1;outline:2px solid #fff;outline-offset:-4px}
/* WSG:CARD-COVER:END */
