/*
Theme Name: GeneratePress Snau
Template: generatepress
Version: 1.0
*/

/*
 * GeneratePress Snau — child theme stylesheet (cleaned, annotated, reorganized).
 *
 * This file was unminified, cleaned, and then reorganized into a canonical
 * section order (Tokens → Reset → Base typography → Layout → Header & Nav →
 * Hero → Page sliders → Blog/archive → Single post → Custom post types →
 * Map → Footer → 404 → Forms → WP blocks → Elementor → HA widgets →
 * Newsletter → Solutions → Team → Utilities).
 *
 * Behaviour-preserving transformations only:
 *   - Selectors, declarations, specificity, vendor prefixes and !important
 *     flags are kept intact.
 *   - Source order is preserved WITHIN each section (so cascade between
 *     sibling rules is unchanged). Rules are grouped by component, which
 *     can change order ACROSS sections — visually verify any first-time
 *     reorganization run.
 *   - Repeated literals were extracted into the :root token block and grouped
 *     by typography, color, spacing, layout, radius, borders/focus, shadow,
 *     motion, layering, and legacy aliases.
 *
 * Regeneration:
 *   tools/reorganize-css.py style.css style.reorganized.css
 *   (verifies that the rule multiset is identical before writing).
 *
 * The previous unmodified copy is in style.css.pre-refactor.bak.
 */


/* ==========================================================================
   Design tokens
   ========================================================================== */

:root {
  /* Typography */
  --font-display: "Inter", sans-serif;
  --font-body: "Inter", sans-serif;
  --font-size-body: 1rem;
  --font-size-body-lg: 1.0625rem;
  --font-size-post-body: 1.125rem;
  --font-size-sm: .82rem;
  --font-size-md: .88rem;
  --font-size-card: .92rem;
  --font-size-xs: .72rem;
  --font-size-button: .8rem;
  --font-size-display: clamp(3rem, 4.7vw, 4.15rem);
  --font-size-h1: clamp(1.7rem, 2.7vw, 2.25rem);
  --font-size-h2: clamp(1.65rem, 2.5vw, 2.2rem);
  --font-size-h3: clamp(1.22rem, 1.55vw, 1.55rem);
  --font-size-h4: clamp(1.16rem, 1.1rem + 0.18vw, 1.2rem);
  --line-height-tight: 1;
  --line-height-heading-xs: 1.05;
  --line-height-heading-sm: 1.14;
  --line-height-heading-md: 1.28;
  --line-height-body: 1.65;
  --line-height-body-lg: 1.68;
  --line-height-compact: 1.55;
  --line-height-default: 1.5;
  --letter-spacing-tight-xs: -0.01em;
  --letter-spacing-tight-sm: -0.02em;
  --letter-spacing-tight-md: -0.025em;
  --letter-spacing-tight-lg: -0.04em;
  --letter-spacing-tight-xl: -0.055em;
  --letter-spacing-ui: .025em;
  --letter-spacing-button: .04em;
  --letter-spacing-label: .12em;

  /* Color */
  --color-page: #f9faf7;
  --color-surface: #ffffff;
  --color-surface-soft: #f5f2eb;
  --color-surface-tint: #eef3e3;
  --color-text: #20231d;
  --color-text-muted: #62665d;
  --color-primary: #2a4413;
  --color-primary-dark: #18240c;
  --color-accent: #c5ea5f;
  --color-accent-hover: rgb(183.9259668508,229.2662983425,58.9337016575);
  --color-accent-ring: rgba(197,234,95,.14);
  --color-white: #fff;
  --color-black: #000;
  --color-footer-wordmark: #11140f;
  --color-footer-wordmark-accent: #5f761f;
  --color-footer-icon: #131611;
  --color-footer-muted: #9a9b95;
  --color-surface-hover: #ece9e1;
  --color-card-hover: #eae7de;
  --color-home-card-surface: #f5f6f4;
  --color-home-card-hover: #eeefe9;
  --color-info-image-bg: #dbe4cf;
  --color-transparent: rgba(0, 0, 0, 0);
  --color-line: rgba(32, 34, 28, 0.08);
  --color-line-soft: rgba(32, 35, 29, 0.11);
  --color-text-soft: rgba(32, 35, 29, 0.72);
  --color-overlay-strong: rgba(0, 0, 0, 0.5);
  --color-overlay-control: rgba(0,0,0,.5);
  --color-overlay-control-strong: rgba(0,0,0,.65);
  --color-overlay-menu: rgba(0,0,0,.4);
  --color-overlay-submenu: rgba(0,0,0,.18);
  --color-overlay-caption-soft: rgba(0,0,0,.2);
  --color-overlay-caption-gradient: linear-gradient(to top, rgba(0, 0, 0, 0.4) 0%, rgba(0, 0, 0, 0) 100%);
  --color-olive-border-soft: rgba(42,68,19,.3);
  --color-on-dark-92: hsla(0, 0%, 100%, 0.92);
  --color-on-dark-90: hsla(0, 0%, 100%, 0.90);
  --color-on-dark-85: hsla(0, 0%, 100%, 0.85);
  --color-on-dark-84: hsla(0, 0%, 100%, 0.84);
  --color-on-dark-82: hsla(0, 0%, 100%, 0.82);
  --color-on-dark-70: hsla(0, 0%, 100%, 0.70);
  --color-on-dark-08: hsla(0, 0%, 100%, 0.08);
  --color-on-dark-05: hsla(0, 0%, 100%, 0.05);
  --color-on-dark-04: hsla(0, 0%, 100%, 0.04);
  --gradient-hero-mobile: linear-gradient(to bottom, rgba(0, 0, 0, 0.5) 0%, transparent 25%, rgba(42, 68, 19, 0.6) 60%, var(--color-primary) 100%);

  /* Spacing */
  --space-3xs: 4px;
  --space-2xs: 8px;
  --space-xs: 10px;
  --space-sm: 12px;
  --space-md: 16px;
  --space-lg: 20px;
  --space-xl: 24px;
  --space-2xl: 30px;
  --space-3xl: 40px;
  --space-4xl: 48px;
  --space-5xl: 50px;
  --space-6xl: 60px;
  --space-8xl: 80px;
  --space-9xl: 100px;
  --space-10xl: 120px;
  --space-section: 3rem;
  --space-section-sm: 2rem;
  --space-stack: 1rem;
  --space-stack-sm: .75rem;
  --space-stack-md: 1.5rem;
  --space-panel: 32px;
  --space-footer-mobile: 34px;
  --space-control: 44px;
  --space-touch-row: 52px;
  --space-icon: 24px;
  --space-icon-badge: 34px;
  --space-social-mobile: 46px;
  --space-side-mobile: var(--space-lg);
  --space-side-desktop: var(--space-2xl);
  --space-inline-card: 20px;

  /* Canonical horizontal gutter + max-width for main content.
     Single source of truth for the horizontal padding/margin of the
     primary content column across every template (page, single, archive,
     CPT, 404, Elementor). 20px mobile, 30px desktop is also mirrored to
     GeneratePress's Customizer defaults via generate_option_defaults in
     functions.php so the parent emits matching values and the cascade
     stays predictable. */
  --main-gutter: var(--space-lg);
  --main-max-width: var(--layout-content-readable);

  /* Layout */
  --layout-container: 1180px;
  --layout-content-narrow: 740px;
  --layout-content-readable: min(50rem,68ch);
  --layout-banner: 1080px;
  --layout-banner-content: 720px;
  --layout-banner-subhead: 620px;
  --layout-hero-copy: 520px;
  --layout-hero-panel: 44%;
  --layout-hero-image-stack: 420px;
  --layout-hero-mobile-min: 360px;
  --layout-hero-mobile-vh: 60dvh;
  --layout-hero-tablet-vh: 65dvh;
  --layout-hero-tablet-offset: 180px;
  --layout-slider-mobile-height: max(506px, 60dvh);
  --layout-footer-brand: 355px;
  --layout-footer-description: 320px;
  --layout-gallery-gap: 10px;
  --layout-icon-box: 52px;
  --layout-icon-box-sm: 48px;
  --layout-map-height: 400px;
  --layout-map-height-sm: 300px;
  --layout-header-height: 72px;
  --layout-container-gutter: 40px;
  --layout-container-gutter-sm: 24px;
  --layout-container-gutter-footer: 48px;

  /* Breakpoints (media queries keep literals because CSS var() is not valid there) */
  --bp-xs: 400px;
  --bp-sm: 560px;
  --bp-md: 767px;
  --bp-md-up: 768px;
  --bp-nav: 899px;
  --bp-nav-up: 900px;
  --bp-lg: 1024px;
  --bp-lg-up: 1025px;
  --bp-hero: 1140px;
  --bp-hero-up: 1141px;
  --bp-xl: 1280px;
  --bp-xl-up: 1281px;

  /* Radius */
  --radius-xs: 2px;
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 14px;
  --radius-icon-sm: 12px;
  --radius-xl: 16px;
  --radius-pill: 999px;
  --radius-round: 50%;

  /* Borders / focus */
  --border-width-thin: 1px;
  --border-width-medium: 2px;
  --border-width-strong: 3px;
  --focus-ring-width: 3px;
  --focus-ring-offset: 3px;
  --focus-ring-offset-lg: 4px;
  --focus-ring-offset-xl: 5px;

  /* Shadow */
  --shadow-sm: 0 8px 24px rgba(17, 22, 12, 0.06);
  --shadow-badge: 0 10px 24px rgba(17,22,12,.12);
  --shadow-icon-soft: 0 8px 24px rgba(27,34,19,.04);
  --shadow-lg: 0 24px 50px rgba(17, 22, 12, 0.10);

  /* Motion */
  --duration-instant: .01ms;
  --duration-fast: .15s;
  --duration-ui: .18s;
  --duration-base: .2s;
  --duration-standard: .3s;
  --duration-menu: .35s;
  --duration-card: 240ms;
  --duration-filter: 260ms;
  --duration-image: 600ms;
  --duration-image-slow: 1200ms;
  --duration-accordion: 1s;
  --ease-standard: ease;
  --ease-in-out: ease-in-out;
  --ease-out-expo: cubic-bezier(0.19, 1, 0.22, 1);
  --ease-out-quint: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-out-cubic: cubic-bezier(0.215, 0.61, 0.355, 1);
  --ease-in-back: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  --transition-base: var(--duration-standard);
  --transition-button: background var(--duration-base) var(--ease-standard),transform var(--duration-base) var(--ease-standard);
  --transition-card: transform var(--duration-card) var(--ease-standard),box-shadow var(--duration-card) var(--ease-standard);
  --transition-image: transform var(--duration-image) var(--ease-standard);
  --transition-image-slow: all var(--duration-image-slow) var(--ease-out-expo);
  --transition-surface: background var(--duration-base) var(--ease-standard);

  /* Form controls */
  --form-control-padding-x: 16px;
  --form-control-padding-y: 11px;
  --form-control-min-height: var(--space-control);
  --form-control-font-size: var(--font-size-card);
  --form-control-bg: var(--color-surface);
  --form-control-border: var(--color-line);
  --form-control-border-hover: var(--color-olive-border-soft);
  --form-control-border-focus: var(--color-primary);
  --form-control-radius: var(--radius-sm);
  --form-control-shadow-focus: 0 0 0 var(--focus-ring-width) var(--color-accent-ring);
  --form-label-size: var(--font-size-sm);
  --form-label-weight: 600;
  --form-label-color: var(--color-text);
  --form-label-gap: var(--space-2xs);
  --form-field-stack: var(--space-md);
  --form-group-stack: var(--space-xl);
  --form-transition: border-color var(--duration-base) var(--ease-standard), box-shadow var(--duration-base) var(--ease-standard), background-color var(--duration-base) var(--ease-standard);

  /* Layering */
  --z-base: 0;
  --z-raised: 1;
  --z-content: 2;
  --z-overlay: 3;
  --z-slider-controls: 4;
  --z-mobile-backdrop: 5;
  --z-header: 10;
  --z-menu-toggle: 20;

}


/* ==========================================================================
   Reset & base elements
   ========================================================================== */

html {
  box-sizing: border-box;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}

*,
*:before,
*:after {
  box-sizing: inherit;
}

body {
  margin: 0;
  font: var(--font-size-body)/var(--line-height-default) sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
}

main,
li {
  display: block;
}

button {
  overflow: visible;
  border: 0;
  font: inherit;
  -webkit-font-smoothing: inherit;
  letter-spacing: inherit;
  background: none;
  cursor: pointer;
}

html {
  scroll-behavior: smooth;
}

@media(prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *,
  *::before,
  *::after {
    animation-duration: var(--duration-instant) !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: var(--duration-instant) !important;
  }
}

body {
  background-color: var(--color-page);
  overflow-x: hidden;
}

body {
  font-family: var(--font-body);
  font-size: var(--font-size-body);
  font-weight: 400;
  color: var(--color-text);
  line-height: var(--line-height-default);
  text-rendering: optimizeLegibility;
}

body[class*=elementor-kit-] {
  --e-global-typography-primary-font-family: var(--font-display);
  --e-global-typography-secondary-font-family: var(--font-display);
  --e-global-typography-text-font-family: var(--font-body);
  --e-global-typography-accent-font-family: var(--font-body);
}


/* ==========================================================================
   Base typography
   ========================================================================== */

h1,
h2,
h3,
h4,
p,
blockquote,
figure,
ol,
ul {
  margin: 0;
  padding: 0;
}

h1,
h2,
h3,
h4 {
  font-size: inherit;
}

strong {
  font-weight: bold;
}

a,
button {
  color: inherit;
  transition: var(--transition-base);
}

a {
  text-decoration: none;
}

img {
  display: block;
  max-width: 100%;
  height: auto;
  border: 0;
}

h1,
.h1 {
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--color-text);
  margin: 0;
  font-size: var(--font-size-h1);
  line-height: var(--line-height-heading-xs);
  letter-spacing: var(--letter-spacing-tight-lg);
}

h2,
.h2 {
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--color-text);
  margin: 0;
  font-size: var(--font-size-h2);
  line-height: var(--line-height-heading-sm);
  letter-spacing: var(--letter-spacing-tight-md);
}

h3,
.h3 {
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--color-text);
  margin: 0;
  font-size: var(--font-size-h3);
  line-height: var(--line-height-heading-md);
  letter-spacing: var(--letter-spacing-tight-sm);
}

h4,
.h4,
h5,
.h5 {
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--color-text);
  margin: 0;
  font-size: var(--font-size-h4);
  line-height: var(--line-height-heading-md);
  letter-spacing: var(--letter-spacing-tight-xs);
}

h4 {
  font-weight: 500;
}

p {
  font-family: var(--font-body);
  font-size: var(--font-size-body);
  line-height: var(--line-height-body);
  color: var(--color-text);
  margin-top: 0;
  margin-bottom: .75em;
}

p:last-child {
  margin-bottom: 0;
}

small,
.small {
  font-size: var(--font-size-md);
  line-height: var(--line-height-compact);
}

strong {
  font-weight: 700;
}

blockquote {
  display: block;
  margin: 2em 0 !important;
  padding-left: 1em;
}

blockquote p {
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--color-text);
  margin: 0;
  font-size: var(--font-size-h4);
  line-height: var(--line-height-default);
  letter-spacing: var(--letter-spacing-tight-xs);
  color: var(--color-primary-dark);
  line-height: 1.4 !important;
}

blockquote p:before {
  padding-right: 1em;
}

blockquote cite {
  font-size: var(--font-size-md);
  line-height: var(--line-height-compact);
}

figcaption {
  font-size: var(--font-size-sm);
  line-height: var(--line-height-default);
  font-style: italic;
  color: var(--color-text-muted);
  text-align: center;
}


/* ==========================================================================
   Layout containers
   ========================================================================== */

/* Bump the canonical gutter on tablet+ so every main-content wrapper
   that uses var(--main-gutter) widens in sync, matching the parent
   theme's Customizer values set via generate_option_defaults. */
@media (min-width: 768px) {
  :root {
    --main-gutter: var(--space-2xl);
  }
}

.container {
  width: min(var(--layout-container),100% - var(--layout-container-gutter));
  margin-right: auto;
  margin-left: auto;
}

@media(max-width: 560px) {
  .container {
    width: min(var(--layout-container),100% - var(--layout-container-gutter-sm));
  }
}

/* Standard WP pages. Horizontal padding uses the canonical --main-gutter
   token so it matches every other template. Vertical rhythm is unchanged. */
.page-template-default .site-content {
  max-width: var(--main-max-width);
  margin: auto;
  padding: var(--space-2xl) var(--main-gutter);
}

@media only screen and (min-width: 600px) {
  .page-template-default .site-content {
    padding: var(--space-6xl) var(--main-gutter);
  }
}

@media only screen and (min-width: 768px) {
  .page-template-default .site-content {
    padding: var(--space-9xl) var(--main-gutter);
  }
}

.entry-content h1,
.entry-content h2,
.entry-content h3,
.entry-content h4,
.entry-content h5,
.page-template-default .site-content h1,
.page-template-default .site-content h2,
.page-template-default .site-content h3,
.page-template-default .site-content h4,
.page-template-default .site-content h5 {
  margin-top: 1em;
  margin-bottom: .4em;
  hyphens: none;
  overflow-wrap: normal;
  word-break: normal;
}

.entry-content p,
.page-template-default .site-content p {
  hyphens: none;
  overflow-wrap: normal;
  word-break: normal;
}

.site-content a:link,
.site-content a:visited {
  color: var(--color-primary);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .18em;
}

.site-content a:hover,
.site-content a:focus-visible {
  color: var(--color-text);
  text-decoration-thickness: 2px;
}

.inside-navigation .site-logo a img {
  max-width: 135px;
  height: auto;
  display: block;
}

@media(min-width: 768px) {
  .inside-navigation .site-logo a img {
    max-width: 155px !important;
  }
}

.site-logo {
  margin-top: 12px;
}

.post-type-archive-landwirte .site-main {
  margin-top: 6rem;
  padding-inline: var(--main-gutter);
  display: flex;
  flex-wrap: wrap;
}

.error404 .site-content {
  padding: var(--space-8xl) var(--main-gutter);
}

@media only screen and (min-width: 768px) {
  .error404 .site-content {
    padding: 120px var(--main-gutter);
  }
}

@media(max-width: 560px) {
  .error404 .site-content {
    padding: var(--space-6xl) var(--main-gutter);
  }
  .express-404__code {
    font-size: 5.5rem;
  }
  .express-404__inner .search-form {
    flex-direction: column;
    gap: .5rem;
  }
  .express-404__inner .search-form .search-field {
  border-right: var(--border-width-thin) solid var(--color-line);
    border-radius: var(--radius-sm);
  }
  .express-404__inner .search-form .search-submit {
    border-radius: var(--radius-sm);
  }
  .express-404__links {
    flex-direction: column;
    align-items: center;
    gap: .5rem;
  }
  .express-404__links li:not(:last-child)::after {
    display: none;
  }
}

/* Override the parent theme's hard-coded 40px horizontal padding on
   `.inside-article` so the standard article wrapper (used by page.php,
   single.php, archive.php, search.php and index.php) shares the same
   horizontal gutter as the rest of the site. Vertical padding is left
   untouched — the parent's Customizer values (now mirrored in
   functions.php) handle that. */
.separate-containers .inside-article {
  background-color: var(--color-transparent);
  padding-left: var(--main-gutter);
  padding-right: var(--main-gutter);
}


/* ==========================================================================
   Site header & navigation
   ========================================================================== */

.main-navigation {
  z-index: var(--z-menu-toggle);
}

#masthead,
body.home #site-navigation {
  position: absolute;
  inset: 0 0 auto 0;
  z-index: var(--z-header);
}

body:not(.home) #masthead,
body:not(.home) #site-navigation {
  position: relative;
  inset: unset;
  background: var(--color-primary-dark);
}

body.express-has-hero-header #masthead,
body.express-has-hero-header #site-navigation {
  position: absolute;
  inset: 0 0 auto 0;
  z-index: var(--z-header);
  background: var(--color-transparent);
}

#site-navigation {
  background: var(--color-transparent);
  border: none;
  padding: 0;
}

#site-navigation .inside-navigation {
  width: min(var(--layout-container),100% - var(--layout-container-gutter));
  margin-inline: auto;
  padding-inline: 0;
  min-height: var(--layout-header-height);
  display: flex;
  align-items: center;
  gap: var(--space-xl);
}

.navigation-branding {
  margin-left: 0 !important;
  flex-shrink: 0;
}

#site-navigation .main-nav {
  flex: 1;
  display: flex;
  justify-content: flex-end;
}

#site-navigation .main-nav>ul {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  list-style: none;
  margin: 0;
  padding: 0;
}

#site-navigation .menu-item-has-children>a>.dropdown-menu-toggle {
  padding-left: var(--space-3xs);
  padding-right: var(--space-3xs);
}

#site-navigation .menu-item>a {
  display: inline-flex;
  align-items: center;
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: var(--letter-spacing-button);
  color: var(--color-white);
  white-space: nowrap;
  background: var(--color-transparent);
  padding: var(--space-3xs) 0;
  opacity: .9;
  transition: opacity var(--duration-base) var(--ease-standard),color var(--duration-base) var(--ease-standard);
}

#site-navigation .menu-item>a:hover,
#site-navigation .menu-item>a:focus-visible {
  background: var(--color-transparent);
  opacity: 1;
  color: var(--color-white);
}

#site-navigation .menu-item>a:focus-visible {
  outline: var(--border-width-medium) solid var(--color-accent);
  outline-offset: var(--focus-ring-offset-xl);
  border-radius: var(--radius-xs);
}

#site-navigation .current-menu-item>a,
#site-navigation .current-menu-parent>a,
#site-navigation .current-menu-ancestor>a {
  opacity: 1;
  color: var(--color-accent) !important;
  background: var(--color-transparent);
}

#site-navigation .menu-cta>a {
  padding: 11px 20px;
  border-radius: var(--radius-sm);
  background: rgba(15,24,9,.9);
  opacity: 1;
  transition: var(--transition-button);
}

#site-navigation .menu-cta>a:hover,
#site-navigation .menu-cta>a:focus-visible {
  background: var(--color-primary-dark);
  transform: translateY(-1px);
  color: var(--color-white);
}

@media(min-width: 1024px) {
  #site-navigation .menu-item>a {
    font-size: var(--font-size-md);
  }
}

#site-navigation .sub-menu {
  background: var(--color-primary-dark);
  border: none;
  border-top: var(--border-width-medium) solid var(--color-accent);
  width: auto !important;
  min-width: 260px;
  max-width: min(380px,90vw);
}

#site-navigation .sub-menu a {
  display: block;
  font-size: .78rem;
  line-height: 1.45;
  font-weight: 500;
  letter-spacing: .02em;
  text-transform: none;
  color: var(--color-on-dark-85);
  opacity: 1;
  padding: 13px 20px;
  white-space: normal;
}

#site-navigation .sub-menu a:hover {
  color: var(--color-accent);
  background: var(--color-on-dark-05);
}

.main-navigation button.menu-toggle {
  display: none;
  appearance: none;
  border: none;
  background: var(--color-transparent);
  padding: 8px;
  cursor: pointer;
  z-index: var(--z-menu-toggle);
  min-width: var(--space-control);
  min-height: var(--space-control);
  align-items: center;
  justify-content: center;
}

.main-navigation button.menu-toggle svg,
.main-navigation button.menu-toggle .gp-icon {
  fill: var(--color-white);
  color: var(--color-white);
  width: var(--space-icon);
  height: var(--space-icon);
}

.main-navigation button.menu-toggle .mobile-menu {
  display: none !important;
}

.main-navigation button.menu-toggle .hamburger-box {
  display: block;
  width: var(--space-icon);
  height: 18px;
  position: relative;
}

.main-navigation button.menu-toggle .hamburger-inner {
  display: block;
  top: 50%;
  margin-top: -1px;
}

.main-navigation button.menu-toggle .hamburger-inner,
.main-navigation button.menu-toggle .hamburger-inner::before,
.main-navigation button.menu-toggle .hamburger-inner::after {
  width: var(--space-icon);
  height: 2px;
  background-color: var(--color-on-dark-70);
  border-radius: 1px;
  position: absolute;
  transition: transform .25s var(--ease-in-back),background-color var(--duration-fast) var(--ease-standard);
}

.main-navigation button.menu-toggle .hamburger-inner::before,
.main-navigation button.menu-toggle .hamburger-inner::after {
  content: "";
  display: block;
}

.main-navigation button.menu-toggle .hamburger-inner::before {
  top: -8px;
}

.main-navigation button.menu-toggle .hamburger-inner::after {
  bottom: -8px;
}

.main-navigation button.menu-toggle:focus-visible {
  outline: var(--border-width-medium) solid var(--color-accent);
  outline-offset: var(--focus-ring-offset-lg);
  border-radius: var(--radius-xs);
}

.main-navigation button.menu-toggle[aria-expanded=true] .hamburger-inner {
  background-color: var(--color-transparent);
}

.main-navigation button.menu-toggle[aria-expanded=true] .hamburger-inner::before {
  top: 0;
  transform: rotate(45deg);
  transition: transform var(--duration-standard) var(--ease-out-cubic);
}

.main-navigation button.menu-toggle[aria-expanded=true] .hamburger-inner::after {
  bottom: 0;
  transform: rotate(-45deg);
  transition: transform var(--duration-standard) var(--ease-out-cubic);
}

.ds-mobile-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: var(--color-overlay-menu);
  z-index: var(--z-mobile-backdrop);
  opacity: 0;
  transition: opacity var(--duration-standard) var(--ease-standard);
}

@media(max-width: 899px) {
  body:not(.home) #masthead,
  body:not(.home) #site-navigation {
    position: static !important;
    inset: unset !important;
    top: auto !important;
    background: var(--color-primary-dark);
  }
  body.home #site-navigation {
    background: var(--color-transparent);
  }
  body.home #mobile-header {
    position: absolute;
    inset: 0 0 auto 0;
    z-index: var(--z-header);
    background: var(--color-transparent);
  }
  body.home #mobile-header .inside-navigation {
    background: var(--color-transparent);
  }
  body.express-has-hero-header #site-navigation {
    position: absolute !important;
    inset: 0 0 auto 0 !important;
    top: 0 !important;
    background: var(--color-transparent);
  }
  body.express-has-hero-header #mobile-header {
    position: absolute;
    inset: 0 0 auto 0;
    z-index: var(--z-header);
    background: var(--color-transparent);
  }
  body.express-has-hero-header #mobile-header .inside-navigation {
    background: var(--color-transparent);
  }
  #mobile-header .inside-navigation {
    padding-left: var(--space-lg);
    margin-top: var(--space-2xs);
  }
  #site-navigation .inside-navigation {
    padding-block: 14px;
    flex-wrap: nowrap;
  }
  #site-navigation .main-nav {
    flex: 1;
  }
  .main-navigation button.menu-toggle {
    display: flex !important;
    flex-shrink: 0;
  }
  #site-navigation .main-nav>ul,
  .main-navigation .main-nav>ul {
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 0;
    list-style: none;
    padding: calc(var(--layout-header-height) + var(--space-xl)) var(--space-panel) var(--space-panel);
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100dvh;
    background: var(--color-primary-dark);
    z-index: var(--z-header);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    transform: translateY(-100%);
    visibility: hidden;
    transition: transform var(--duration-menu) var(--ease-out-quint),visibility 0s linear var(--duration-menu);
  }
  .main-navigation.toggled .main-nav>ul {
    transform: translateY(0) !important;
    visibility: visible !important;
    transition: transform var(--duration-menu) var(--ease-out-quint),visibility 0s !important;
  }
  #site-navigation .main-nav>ul>.menu-item:not(.menu-item-has-children) {
    margin-inline: 6px;
  }
  #site-navigation .menu-item>a {
    width: 100%;
    padding: 16px 0;
    font-size: 1.15rem;
    font-weight: 600;
    letter-spacing: .02em;
    text-transform: none;
    text-align: center;
    color: var(--color-on-dark-90);
    border-bottom: var(--border-width-thin) solid var(--color-on-dark-08);
    opacity: 1;
    min-height: var(--space-touch-row);
    display: flex;
    align-items: center;
    justify-content: right;
  }
  #site-navigation .menu-item>a:hover,
  #site-navigation .menu-item>a:focus-visible {
    color: var(--color-accent);
    background: var(--color-on-dark-04);
  }
  #site-navigation .menu-cta>a {
    background: var(--color-accent);
    color: var(--color-primary-dark);
    border-radius: var(--radius-sm);
    margin-top: var(--space-2xs);
    padding: 14px 28px;
    width: fit-content;
    font-weight: 700;
    opacity: 1;
    border-bottom: none;
    min-height: unset;
  }
  #site-navigation .menu-cta>a:hover {
    background: var(--color-accent);
    transform: none;
    color: var(--color-primary-dark);
  }
  #site-navigation .sub-menu {
    position: static !important;
    background: var(--color-overlay-submenu);
    width: 100%;
    border: none;
  }
  .main-navigation.toggled .main-nav ul ul.toggled-on {
    display: block !important;
  }
  .ds-mobile-overlay {
    display: block;
  }
  #masthead.ds-menu-open .ds-mobile-overlay,
  #site-navigation.ds-menu-open .ds-mobile-overlay {
    opacity: 1;
  }
  body.ds-menu-lock {
    overflow: hidden;
  }
}


/* ==========================================================================
   Hero
   ========================================================================== */

.hero__text {
  z-index: var(--z-header);
}

.hero__overlay {
  z-index: var(--z-raised);
}

.hero {
  position: relative;
  min-height: 710px;
  background: var(--color-primary);
  overflow: hidden;
  display: flex;
  align-items: stretch;
}

.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, var(--color-overlay-strong) 0%, transparent var(--space-10xl));
  pointer-events: none;
  z-index: var(--z-overlay);
}

.hero__image {
  position: absolute !important;
  inset: 0;
  width: auto !important;
  height: auto !important;
  clip-path: polygon(0 0, 56% 0, calc(56% - 130px) 100%, 0 100%);
}

.hero__image::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.38) 0%, transparent 35%),linear-gradient(to right, transparent 55%, rgba(42, 68, 19, 0.55) 80%);
  pointer-events: none;
  z-index: var(--z-raised);
}

.hero__image .swiper-container,
.hero__image .swiper-wrapper {
  position: absolute !important;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  z-index: var(--z-base) !important;
}

.hero__image .swiper-slide {
  width: 100% !important;
  height: 100% !important;
}

.hero__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 36% center;
  display: block;
}

.hero__overlay {
  display: none !important;
}

.hero__text,
.hero__text--home {
  position: relative !important;
  z-index: var(--z-content);
  width: var(--layout-hero-panel) !important;
  margin-left: auto !important;
  margin-top: 0 !important;
  color: var(--color-white);
  display: flex;
  align-items: center;
  padding: 148px 48px 72px 140px !important;
}

.hero__text::before,
.hero__text--home::before {
  content: "";
  position: absolute;
  width: 700px;
  height: 700px;
  border: var(--border-width-thin) solid var(--color-accent-ring);
  border-radius: var(--radius-round);
  right: -330px;
  top: 40px;
  pointer-events: none;
}

.hero__text .hero__text__wrapper,
.hero__text--home .hero__text__wrapper {
  position: relative;
  z-index: var(--z-raised);
  max-width: var(--layout-hero-copy);
  margin-left: var(--space-section-sm);
}

.hero .eyebrow {
  display: inline-flex;
  align-items: center;
  padding: 5px 10px;
  border-radius: var(--radius-xs);
  background: var(--color-accent);
  color: var(--color-primary-dark);
  font-family: var(--font-body);
  font-size: var(--font-size-xs);
  line-height: var(--line-height-default);
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  margin-bottom: 18px;
}

.hero__text h1,
.hero__text--home h1 {
  font-family: var(--font-display);
  font-weight: 800;
  margin: 0 0 .3em;
  font-size: clamp(1.8rem,2.5vw,2.3rem);
  line-height: 1.12;
  letter-spacing: -0.035em;
  color: var(--color-white);
  max-width: var(--layout-hero-copy);
}

.hero__text h2,
.hero__text--home h2 {
  font-family: var(--font-display);
  font-size: clamp(1.8rem,2.5vw,2.3rem);
  font-weight: 800;
  line-height: 1.12;
  letter-spacing: -0.035em;
  color: var(--color-on-dark-90);
  margin-top: 0;
}

.hero__text h3,
.hero__text--home h3,
.hero__text__link h3 {
  font-family: var(--font-body);
  font-weight: 400;
  font-size: var(--font-size-body);
  line-height: var(--line-height-compact);
  letter-spacing: 0;
  color: var(--color-on-dark-70);
  margin-top: var(--space-stack-md);
}

.hero__text p,
.hero__text--home p {
  font-family: var(--font-body);
  font-size: var(--font-size-body);
  line-height: var(--line-height-body);
  color: var(--color-text);
  margin: var(--space-xl) 0 0;
  max-width: var(--layout-hero-copy);
  color: var(--color-on-dark-82);
}

.hero__text__link h3 {
  font-family: var(--font-display);
  font-weight: 700;
}

.hero__button a:link,
.hero__button a:visited {
  display: inline-flex;
  align-items: center;
  padding: 12px 24px;
  background: var(--color-accent);
  color: var(--color-primary-dark);
  font-family: var(--font-body);
  font-size: var(--font-size-sm);
  line-height: var(--line-height-default);
  font-weight: 700;
  letter-spacing: var(--letter-spacing-button);
  border-radius: var(--radius-sm);
  text-decoration: none;
  transition: var(--transition-button);
}

.hero__button a:link:hover,
.hero__button a:visited:hover {
  background: var(--color-accent-hover);
  transform: translateY(-1px);
}

.hero--home {
  background: var(--color-transparent) !important;
}

.hero--home .hero__image .swiper-wrapper {
  z-index: -1 !important;
}

.single-post .hero__text {
  padding-top: 100px !important;
  padding-bottom: 24px !important;
  min-height: 180px;
  width: 100% !important;
  margin-left: 0 !important;
}

.single-post .hero {
  min-height: 0;
}

@media(max-width: 1140px) {
  .hero {
    flex-direction: column;
  }
  .hero__image {
    position: relative !important;
    inset: unset !important;
    width: 100% !important;
    height: auto !important;
    min-height: var(--layout-hero-image-stack);
    clip-path: none;
  }
  .hero__image::after {
    background: none;
  }
  .hero__image img {
    width: 100%;
    height: 100%;
    min-height: var(--layout-hero-image-stack);
  }
  .hero__image .swiper-container,
  .hero__image .swiper-wrapper {
    position: relative !important;
    inset: unset !important;
    min-height: var(--layout-hero-image-stack);
  }
  .hero__text,
  .hero__text--home {
    width: 100% !important;
    margin-left: 0 !important;
    padding: 72px 40px 56px !important;
  }
  .hero__text::before,
  .hero__text--home::before {
    display: none;
  }
}

@media(min-width: 1141px) {
  body.express-has-hero-header .hero:not(.hero--events) .hero__text {
    width: 52% !important;
    padding-left: var(--space-8xl) !important;
  }
  body.express-has-hero-header .hero:not(.hero--events) .hero__text .hero__text__wrapper {
    margin-left: 0;
  }
  body.express-has-hero-header .hero--events:has(.hero__image img) .hero__text {
    width: 52% !important;
    padding-left: var(--space-8xl) !important;
  }
  body.express-has-hero-header .hero--events:has(.hero__image img) .hero__text .hero__text__wrapper {
    margin-left: 0;
  }
}

@media(min-width: 1141px)and (max-width: 1280px) {
  .hero__text,
  .hero__text--home {
    padding-left: 84px !important;
    padding-right: 40px !important;
  }
  .hero__text .hero__text__wrapper,
  .hero__text--home .hero__text__wrapper {
    margin-left: var(--space-stack);
    max-width: 500px;
  }
  .hero__text h1,
  .hero__text--home h1 {
    font-size: clamp(1.8rem,2.5vw,2.3rem);
    line-height: 1.12;
    letter-spacing: -0.035em;
  }
}

@media(min-width: 900px)and (max-width: 1140px) {
  .hero {
    min-height: 0;
  }
  .hero__image {
    position: absolute !important;
    inset: 0 !important;
    width: auto !important;
    height: auto !important;
    min-height: unset !important;
    clip-path: none;
    background-position: 50% 30%;
  }
  .hero__image::after {
    background: var(--gradient-hero-mobile);
    z-index: var(--z-raised);
  }
  .hero__image .swiper-container,
  .hero__image .swiper-wrapper {
    position: absolute !important;
    inset: 0 !important;
    min-height: unset !important;
  }
  .hero__text,
  .hero__text--home {
    width: 100% !important;
    margin-left: 0 !important;
    min-height: max(var(--layout-hero-image-stack),var(--layout-hero-tablet-vh));
    padding: var(--layout-hero-tablet-offset) var(--space-xl) var(--space-4xl) !important;
    align-items: flex-end;
  }
  .hero__text::before,
  .hero__text--home::before {
    display: none;
  }
}

@media(max-width: 899px) {
  .hero {
    min-height: 0;
  }
  .hero__image {
    position: absolute !important;
    inset: 0 !important;
    width: auto !important;
    height: auto !important;
    min-height: unset !important;
    clip-path: none;
    background-position: 50% 30%;
  }
  .hero__image::after {
    background: var(--gradient-hero-mobile);
    z-index: var(--z-raised);
  }
  .hero__image .swiper-container,
  .hero__image .swiper-wrapper {
    position: absolute !important;
    inset: 0 !important;
    min-height: unset !important;
  }
  .hero__text,
  .hero__text--home {
    width: 100% !important;
    margin-left: 0 !important;
    min-height: max(var(--layout-hero-image-stack),var(--layout-hero-tablet-vh));
    padding: var(--layout-hero-tablet-offset) var(--space-xl) var(--space-4xl) !important;
    align-items: flex-end;
  }
  .hero__text::before,
  .hero__text--home::before {
    display: none;
  }
}

@media(max-width: 560px) {
  .hero__text h1,
  .hero__text--home h1 {
    font-size: clamp(2rem,10vw,2.35rem);
    line-height: 1.06;
  }
  .hero__text p {
    font-size: var(--font-size-card);
  }
  .hero__text,
  .hero__text--home {
    box-sizing: border-box;
    min-height: max(var(--layout-hero-mobile-min),var(--layout-hero-mobile-vh));
    padding: 140px 20px 40px !important;
  }
  .hero__text .hero__text__wrapper,
  .hero__text--home .hero__text__wrapper {
    width: auto;
    max-width: 100%;
    margin-left: 0;
    min-width: 0;
  }
  .hero__text h1,
  .hero__text h2,
  .hero__text h3,
  .hero__text p,
  .hero__text--home h1,
  .hero__text--home h2,
  .hero__text--home h3,
  .hero__text--home p {
    max-width: 100%;
    hyphens: none;
    overflow-wrap: normal;
    word-break: normal;
  }
}

@media only screen and (min-width: 1024px) {
  .hero--home .hero__text--home .hero__text__wrapper,
  .hero__text--home .hero__text__wrapper {
    max-width: var(--layout-hero-copy);
  }
}

.hero--home .hero__text--home h1,
.hero__text--home h1 {
  font-family: var(--font-body);
  font-size: var(--font-size-body);
  font-weight: 400;
  letter-spacing: .045em;
  text-transform: uppercase;
  margin-bottom: .5em;
  color: var(--color-white);
  line-height: 1.25;
}

.hero--home .hero__text--home h3,
.hero__text--home h3 {
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--color-text);
  margin: 0;
  font-size: var(--font-size-h4);
  line-height: var(--line-height-heading-md);
  letter-spacing: var(--letter-spacing-tight-xs);
  margin-top: 0;
  color: var(--color-white);
}

@media only screen and (min-width: 1024px) {
  .hero--home .hero__text--home h3,
  .hero__text--home h3 {
    font-family: var(--font-display);
    font-weight: 700;
    color: var(--color-text);
    margin: 0;
    font-size: var(--font-size-h3);
    line-height: var(--line-height-heading-md);
    letter-spacing: var(--letter-spacing-tight-sm);
    color: var(--color-white);
  }
}

@media(prefers-reduced-motion: reduce) {
  .hero__image,
  .hero__image .swiper-container {
    transition-duration: var(--duration-instant) !important;
    animation-duration: var(--duration-instant) !important;
  }
}

.single-post .hero__text {
  padding-top: var(--space-stack-md);
  padding-bottom: var(--space-stack-md);
}

.single-post:not(.featured-image-active) .hero {
  display: none;
}

.single-post .hero h1 {
  padding-top: 0;
  margin-top: 0;
  font-family: var(--font-body);
  font-size: var(--font-size-body);
  font-weight: 400;
  text-transform: none;
  color: var(--color-white);
  letter-spacing: normal;
  line-height: 1.25;
}

.single-post .hero h3 {
  font-family: var(--font-body);
  font-size: var(--font-size-body);
  font-weight: 400;
  line-height: 1.2;
  color: var(--color-surface) !important;
}

.hero--events .hero__text {
  padding-top: var(--space-section-sm);
  padding-bottom: 3rem;
}

.hero--events .event__datewrapper {
  font-family: var(--font-body);
  font-size: var(--font-size-body);
  line-height: var(--line-height-body);
  color: var(--color-text);
  color: var(--color-surface);
}

.hero--events .event__starttime::before {
  content: "| ";
}

.hero--events .event__title {
  font-family: var(--font-display);
  font-weight: 800;
  color: var(--color-text);
  margin: 0;
  font-size: clamp(1.8rem,2.5vw,2.3rem);
  line-height: 1.12;
  letter-spacing: -0.035em;
  color: var(--color-surface);
  margin-top: .5em;
}

.hero--events .event__excerpt {
  font-family: var(--font-body);
  font-size: var(--font-size-body);
  line-height: var(--line-height-body);
  color: var(--color-on-dark-70);
  font-weight: normal;
}

.hero--events .event__info {
  font-size: var(--font-size-sm);
  line-height: var(--line-height-default);
  color: var(--color-surface);
  text-decoration: underline;
  margin-top: 1.5em;
}

.hero--events .event__info:hover {
  text-decoration: none;
}

.slider-home .swiper-wrapper:hover .hero__text__link h3 .more {
  text-decoration: underline;
}

.slider-home .hero__text h1 {
  font-size: clamp(1.8rem,2.5vw,2.3rem);
  line-height: 1.12;
  letter-spacing: -0.035em;
}

.slider-home .hero__text__link h3 {
  font-family: var(--font-body);
  font-weight: 400;
  font-size: var(--font-size-body);
  line-height: var(--line-height-compact);
  color: var(--color-on-dark-70);
  letter-spacing: 0;
  margin-top: var(--space-stack-md);
}

.slider-home .hero__text__link h3 .more {
  display: block;
  margin-top: var(--space-stack-sm);
  font-weight: 600;
  color: var(--color-on-dark-92);
}

@media(min-width: 1281px) {
  .slider-home .hero__text {
    width: var(--layout-hero-panel) !important;
    padding-left: 140px !important;
  }
}


/* ==========================================================================
   Home page slider
   ========================================================================== */

.slider-home {
  position: relative;
}

.slider-home .swiper-button-prev,
.slider-home .swiper-button-next {
  background: var(--color-overlay-control) !important;
  padding: 22px;
}

.slider-home .swiper-button-prev:after,
.slider-home .swiper-button-next:after {
  font-size: 1em !important;
  color: var(--color-white) !important;
}

.slider-home .swiper-button-prev {
  position: absolute;
  bottom: 0;
  right: 45px;
  left: auto !important;
  top: auto !important;
}

.slider-home .swiper-button-next {
  position: absolute;
  bottom: 0;
  right: 0;
  left: auto !important;
  top: auto !important;
}

.slider-home .slider-home__autoplay-toggle {
  position: absolute;
  right: 0;
  bottom: 54px;
  z-index: var(--z-overlay);
  padding: var(--space-2xs) var(--space-sm);
  background: var(--color-overlay-control-strong);
  color: var(--color-white);
  font-size: var(--font-size-button);
  font-weight: 700;
  line-height: var(--line-height-tight);
}

.slider-home .slider-home__autoplay-toggle:focus-visible {
  outline: var(--focus-ring-width) solid var(--color-accent);
  outline-offset: var(--focus-ring-offset);
}

@media(max-width: 560px) {
  .slider-home {
    --slider-home-mobile-height: var(--layout-slider-mobile-height);
    overflow: hidden;
  }
  .slider-home>.swiper-wrapper {
    overflow: hidden;
    height: var(--slider-home-mobile-height) !important;
    min-height: var(--slider-home-mobile-height);
  }
  .slider-home>.swiper-wrapper>.swiper-slide {
    position: relative;
    overflow: hidden;
    width: 100% !important;
    height: var(--slider-home-mobile-height) !important;
    min-height: var(--slider-home-mobile-height);
    z-index: var(--z-base);
    opacity: 0 !important;
    visibility: hidden;
    pointer-events: none;
  }
  .slider-home>.swiper-wrapper>.swiper-slide-active {
    z-index: var(--z-content);
    opacity: 1 !important;
    visibility: visible;
    pointer-events: auto;
  }
  .slider-home .hero,
  .slider-home .hero__image,
  .slider-home .hero__text {
    width: 100% !important;
    max-width: 100%;
    height: var(--slider-home-mobile-height) !important;
    min-height: var(--slider-home-mobile-height);
  }
  .slider-home .hero__text {
    padding-bottom: 92px !important;
  }
  .slider-home .swiper-button-prev,
  .slider-home .swiper-button-next,
  .slider-home .slider-home__autoplay-toggle {
    z-index: var(--z-slider-controls);
  }
}


/* ==========================================================================
   Slider / gallery (Swiper / Glide)
   ========================================================================== */

.slider__wrapper {
  position: relative;
  line-height: .75;
}

.slider__wrapper .slider__item {
  position: relative;
}

.slider__wrapper .slider__caption {
  background: var(--color-overlay-caption-soft);
  background: var(--color-overlay-caption-gradient);
  color: var(--color-white);
  height: auto;
  width: 100%;
  position: absolute;
  right: 0;
  bottom: 0;
  line-height: 1.2;
}

.slider__wrapper .slider__caption span {
  display: block;
  padding: 6em 10rem 1em 1.5em;
}

.gallery-thumbs {
  margin-top: var(--space-stack);
}

.single-landwirte__gallery .swiper-button-prev,
.single-landwirte__gallery .swiper-button-next {
  background: var(--color-overlay-control) !important;
  padding: 22px;
  border-radius: var(--radius-round);
}

.single-landwirte__gallery .swiper-button-prev:after,
.single-landwirte__gallery .swiper-button-next:after {
  font-size: 1em !important;
  color: var(--color-white) !important;
}

.single-landwirte__gallery .gallery-top .swiper-button-prev,
.single-landwirte__gallery .gallery-top .swiper-button-next {
  opacity: .85;
  transition: all var(--duration-standard) var(--ease-out-expo);
}

.single-landwirte__gallery .gallery-top .swiper-button-prev:focus-visible,
.single-landwirte__gallery .gallery-top .swiper-button-next:focus-visible {
  outline: var(--focus-ring-width) solid var(--color-accent);
  outline-offset: var(--focus-ring-offset);
  opacity: 1;
}

.single-landwirte__gallery .gallery-top:hover .swiper-button-prev,
.single-landwirte__gallery .gallery-top:hover .swiper-button-next,
.single-landwirte__gallery .gallery-top:focus-within .swiper-button-prev,
.single-landwirte__gallery .gallery-top:focus-within .swiper-button-next {
  opacity: 1;
}

.single-landwirte__gallery .swiper-button-disabled {
  display: none !important;
}

.single-landwirte__gallery .gallery-thumbs .swiper-slide {
  cursor: pointer;
  opacity: 1;
  filter: none;
}

.single-landwirte__gallery .gallery-thumbs .swiper-slide img {
  width: 100%;
  opacity: 1;
  filter: none;
}

.single-landwirte__gallery .gallery-thumbs .swiper-slide:hover {
  opacity: 1;
}

.single-landwirte__gallery .gallery-thumbs .gallery-thumbs__button {
  display: flex;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  background: var(--color-transparent);
}

.single-landwirte__gallery .gallery-thumbs .gallery-thumbs__button:focus-visible {
  outline: var(--focus-ring-width) solid var(--color-accent);
  outline-offset: var(--focus-ring-offset);
}

.single-landwirte__gallery .gallery-thumbs .swiper-slide-thumb-active img {
  border: var(--border-width-thin) solid var(--color-black);
}

.single-landwirte__gallery .gallery-thumbs .gallery-thumbs__button[aria-current=true] img {
  border: var(--border-width-medium) solid var(--color-primary);
}

.elementor-image-carousel .swiper-slide {
  margin-right: var(--space-3xs);
  padding: 6px;
}

@media(max-width: 767px) {
  .elementor-image-carousel .swiper-slide {
    margin-right: 2px;
    padding: var(--space-3xs);
  }
}

.elementor-114 .swiper-pagination-bullet {
  display: none !important;
}


/* ==========================================================================
   Blog / archive grid
   ========================================================================== */

.generate-columns-container {
  margin-left: inherit;
  padding-left: 10px;
  padding-right: 10px;
}

.post-type-archive-landwirte .landwirte,
.generate-columns-container .post {
  transition: var(--transition-image-slow);
  padding-left: var(--space-lg);
  padding-right: var(--space-lg);
  margin-bottom: var(--space-3xl);
}

@media(max-width: 1024px) {
  .post-type-archive-landwirte .landwirte,
  .generate-columns-container .post {
    padding: 10px;
  }
}

.post-type-archive-landwirte .landwirte .inside-article,
.generate-columns-container .post .inside-article {
  transition: all var(--duration-base) var(--ease-in-out);
  position: relative;
  border-radius: var(--radius-md) !important;
  box-shadow: var(--shadow-lg);
  padding: 0 !important;
}

.post-type-archive-landwirte .landwirte .inside-article:hover,
.generate-columns-container .post .inside-article:hover {
  box-shadow: var(--shadow-sm);
}

.post-type-archive-landwirte .landwirte:hover img,
.generate-columns-container .post:hover img,
.event-item:hover .event__image img {
  transform: scale(1.05);
}

.post-type-archive-landwirte .landwirte .post-image,
.generate-columns-container .post .inside-article .post-image {
  margin-bottom: var(--space-lg);
  line-height: 0;
  border-radius: var(--radius-md) var(--radius-md) 0 0 !important;
  overflow: hidden;
}

.post-type-archive-landwirte .landwirte .post-image img,
.generate-columns-container .post .inside-article .post-image img {
  transition: all var(--duration-accordion) var(--ease-out-expo);
}

.generate-columns-container .page-header {
  display: none;
}

.post-type-archive-landwirte .landwirte header,
.post-type-archive-landwirte .landwirte .entry-summary,
.generate-columns-container .entry-header,
.generate-columns-container .entry-summary {
  padding: 0 var(--space-lg);
  margin: 0;
}

.post-type-archive-landwirte .landwirte .post header a,
.generate-columns-container .post .entry-header a {
  color: var(--color-text);
}

.post-type-archive-landwirte .landwirte:hover header a,
.generate-columns-container .post:hover .entry-header a {
  color: var(--color-primary);
}

.post-type-archive-landwirte .landwirte header h2,
.generate-columns-container .entry-header .entry-title a {
  font-family: var(--font-body);
  font-size: var(--font-size-body);
  line-height: var(--line-height-body);
  color: var(--color-text);
  line-height: 1.35 !important;
  display: block;
}

.landwirte__city,
.generate-columns-container .entry-summary p {
  font-weight: 400;
  font-size: var(--font-size-sm);
  line-height: var(--line-height-default);
  color: var(--color-text-muted);
  display: block;
  margin-top: -0.75rem;
}

.generate-columns-container .entry-header .entry-date {
  color: var(--color-text);
  position: absolute;
  top: 1em;
  right: 1em;
  padding: .475rem 1.1rem;
  max-width: 100%;
  border-radius: 50px;
  background-color: var(--color-surface);
  font-size: 12px;
}

.generate-columns-container .entry-meta {
  margin-left: var(--space-lg);
  padding-bottom: var(--space-lg);
}

.generate-columns-container .entry-meta,
.generate-columns-container .entry-meta a {
  font-weight: 700;
  font-size: var(--font-size-sm);
  line-height: var(--line-height-default);
}

.generate-columns-container .entry-meta a {
  text-decoration: underline;
}

.generate-columns-container .entry-meta a:hover {
  text-decoration: none;
}

.paging-navigation {
  text-align: center;
  margin: var(--space-lg) !important;
  background: none !important;
}

.paging-navigation .page-numbers {
  display: inline-block;
  padding: .5em 1em;
  border-radius: var(--radius-xs);
  border: var(--border-width-thin) solid var(--color-line);
}

.paging-navigation .page-numbers.current {
  color: var(--color-white);
  background-color: var(--color-primary);
}

.paging-navigation a.page-numbers:hover {
  background-color: var(--color-surface-hover) !important;
}

@media only screen and (min-width: 400px)and (max-width: 767px) {
  .generate-columns-container .post {
    width: 80%;
    margin: auto;
  }
}

.generate-columns-container .sticky .inside-article {
  background-color: var(--color-surface) !important;
  border-bottom: 6px solid var(--color-primary);
}

.single-post .post-meta {
  border-bottom: var(--border-width-thin) solid var(--color-line);
  padding-bottom: var(--space-stack);
  margin-top: var(--space-section);
  margin-bottom: var(--space-section-sm);
}

.single-post .post-meta__date,
.single-post .post-meta__category {
  display: inline;
}

.single-post .post-meta__date {
  margin-right: 1em;
}

.single-post .post-meta__category li {
  display: inline;
  margin-right: .5em;
}

.single-post .post-meta__category li:before {
  content: "";
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  display: inline-block;
  font-style: normal;
  font-variant: normal;
  text-rendering: auto;
  line-height: 1;
  padding-right: .2em;
  color: var(--color-primary);
}

.menu-newsfilter-container {
  margin: 0 var(--space-lg);
  padding-top: var(--space-5xl);
}

@media(min-width: 768px) {
  .menu-newsfilter-container {
    margin: var(--space-lg);
    padding-top: var(--space-8xl);
  }
}

@media(min-width: 1025px) {
  .menu-newsfilter-container {
    margin-left: var(--space-2xl);
    margin-right: var(--space-2xl);
  }
}

.menu-newsfilter-container ul {
  display: flex;
  flex-wrap: wrap;
}

.menu-newsfilter-container ul li {
  margin-right: var(--space-stack);
  margin-bottom: var(--space-stack);
}

.menu-newsfilter-container ul li a {
  display: block;
  border: var(--border-width-thin) solid var(--color-line);
  border-radius: var(--radius-sm);
  padding: .75em 1.5em;
  color: var(--color-text) !important;
  text-transform: uppercase;
  font-size: var(--font-size-sm);
  line-height: var(--line-height-default);
  background-color: var(--color-surface-soft);
}

.menu-newsfilter-container ul li.current-menu-item a,
.menu-newsfilter-container ul li a:hover {
  background-color: var(--color-surface-tint);
}

.menu-newsfilter-container input,
.menu-newsfilter-container select {
  width: 100%;
}


/* ==========================================================================
   Single post
   ========================================================================== */

.single-post .entry-content>p {
  font-size: var(--font-size-post-body);
}

.single-post .entry-content p {
  margin-bottom: 1em;
}

.single-post .inside-article {
  background: var(--color-transparent);
}

.single-post .entry-header,
.single-post .entry-content {
  max-width: var(--main-max-width);
  background-color: var(--color-transparent);
  margin: auto !important;
  padding-right: var(--main-gutter);
  padding-left: var(--main-gutter);
}

.single-post .page-hero {
  height: 800px;
  max-width: 1560px;
  margin: auto;
}

.single-post .entry-title {
  display: none;
}

.single-post h3 {
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--color-text);
  margin: 0;
  font-size: var(--font-size-h4);
  line-height: var(--line-height-heading-md);
  letter-spacing: var(--letter-spacing-tight-xs);
}

.single-post .elementor-column-wrap {
  padding: 0 !important;
}


/* ==========================================================================
   Landwirte (archive + single)
   ========================================================================== */

.entry-content>p,
  .page-template-default .site-content>p,
.single-landwirte__content>p,
.event__description>p {
  font-size: var(--font-size-body-lg);
  line-height: var(--line-height-body-lg);
}

@media(min-width: 1140px) {
  .single-landwirte .menu-item-260>a,
  .post-type-archive-landwirte .menu-item-260>a {
    color: var(--color-accent) !important;
  }
}

.post-type-archive-landwirte .landwirte {
  width: 100%;
  margin: 0 0 var(--space-section-sm) 0;
  display: flex;
}

@media(min-width: 767px) {
  .post-type-archive-landwirte .landwirte {
    width: 50%;
  }
}

@media(min-width: 1025px) {
  .post-type-archive-landwirte .landwirte {
    width: 33.3333333333%;
  }
}

.post-type-archive-landwirte .landwirte .inside-article {
  box-shadow: var(--shadow-lg);
  border-radius: var(--radius-md);
}

@media only screen and (max-width: 767px) {
  .post-type-archive-landwirte .landwirte .inside-article {
    margin: auto;
  }
}

.post-type-archive-landwirte .landwirte .inside-container {
  box-shadow: var(--shadow-lg);
}

.post-type-archive-landwirte .landwirte .post-image {
  overflow: hidden;
}

.post-type-archive-landwirte .landwirte img {
  transition: var(--transition-image-slow);
}

.post-type-archive-landwirte .landwirte .post-image {
  display: block;
  margin-top: 0;
}

.post-type-archive-landwirte .landwirte header,
.post-type-archive-landwirte .landwirte .entry-summary {
  text-align: center;
}

.post-type-archive-landwirte .landwirte header h2 {
  margin-top: 0;
}

.landwirte .entry-summary {
  padding-bottom: var(--space-section-sm) !important;
}

.landwirte h2 {
  font-weight: bold;
}

.landwirte__city {
  display: block;
}

.landwirte__usecases {
  display: block;
}

.landwirte__usecases a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: var(--space-control);
  min-height: var(--space-control);
  margin: .25em;
}

.landwirte__usecases a svg {
  stroke: var(--color-text-muted);
  transition: stroke var(--duration-ui) var(--ease-standard);
}

.landwirte__usecases a:hover svg {
  stroke: var(--color-primary);
}

.landwirte__usecases a:focus-visible {
  outline: var(--focus-ring-width) solid var(--color-accent);
  outline-offset: var(--focus-ring-offset);
  border-radius: var(--radius-sm);
}

/* Horizontal gutter for .single-landwirte now comes from .inside-article
   via the canonical --main-gutter rule (the template renders the wrapper).
   Only the desktop top margin remains template-specific. */
@media only screen and (min-width: 600px) {
  .single-landwirte .site {
    margin-top: var(--space-section-sm);
  }
}

.single-landwirte__main {
  margin-top: var(--space-section-sm);
  margin-bottom: var(--space-section-sm);
}

@media only screen and (min-width: 768px) {
  .single-landwirte__main {
    display: flex;
    margin-top: var(--space-section);
    margin-bottom: var(--space-section);
  }
}

.single-landwirte__content {
  width: 100%;
}

@media only screen and (min-width: 768px) {
  .single-landwirte__content {
    width: 70%;
    padding-right: 5rem;
  }
}

.single-landwirte__aside {
  width: 100%;
}

@media only screen and (min-width: 768px) {
  .single-landwirte__aside {
    width: 30%;
  }
}

.single-landwirte h1 {
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--color-text);
  margin: 0;
  font-size: var(--font-size-h2);
  line-height: var(--line-height-heading-sm);
  letter-spacing: var(--letter-spacing-tight-md);
}

.single-landwirte__usecases {
  background-color: var(--color-surface);
  border: var(--border-width-thin) solid var(--color-line);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
  padding: var(--space-lg);
  padding-bottom: var(--space-3xl);
  margin-top: var(--space-section);
  margin-bottom: var(--space-section-sm);
}

.single-landwirte__usecases h4 {
  font-family: var(--font-body);
  font-size: var(--font-size-h4);
  font-weight: 700;
  line-height: var(--line-height-heading-md);
}

.single-landwirte__map {
  background-color: var(--color-surface);
  border: var(--border-width-thin) solid var(--color-line);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
  margin: 0;
  overflow: hidden;
}

.single-landwirte__map .leaflet-map {
  max-height: var(--layout-map-height);
}

@media only screen and (min-width: 768px) {
  .single-landwirte__map .leaflet-map {
    max-height: var(--layout-map-height-sm);
  }
}

/* Inner padding of the contact card (which has its own background +
   border via .single-landwirte__map). This is widget-inner spacing, not
   a page gutter, so it intentionally uses a fixed --space-lg rather than
   --main-gutter. */
.single-landwirte__contact {
  padding-left: var(--space-lg);
  padding-right: var(--space-lg);
  margin-bottom: var(--space-section-sm);
}

.landwirte_usecases h2,
.single-landwirte__contact h2 {
  margin-top: var(--space-md);
  margin-bottom: var(--space-md);
}

.single-landwirte__contact h4 {
  font-family: var(--font-body);
  font-size: var(--font-size-h4);
  font-weight: 700;
  line-height: var(--line-height-heading-md);
}

.usecase-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: var(--radius-pill);
  background: var(--color-surface-tint);
  color: var(--color-primary);
  flex-shrink: 0;
}

.usecase-icon svg {
  width: 16px;
  height: 16px;
  stroke: var(--color-primary);
  fill: none;
}

.usecase-icon--fill svg {
  width: 20px;
  height: 20px;
  stroke: none;
  fill: currentColor;
}

.landwirte_usecases ul li a {
  display: flex;
  align-items: center;
  gap: var(--space-xs);
  text-decoration: none;
  color: var(--color-text);
  font-size: var(--font-size-card);
}

.landwirte_usecases ul li a:hover .usecase-icon {
  background: var(--color-accent);
}

.landwirte_usecases ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: var(--space-xs);
}

.landwirte_usecases ul li {
  padding: 0;
}

.single-events__main .single-landwirte__content {
  width: 100%;
}

@media only screen and (min-width: 768px) {
  .single-events__main .single-landwirte__content {
    width: 65%;
    padding-right: var(--space-section-sm);
  }
}

@media only screen and (min-width: 1024px) {
  .single-events__main .single-landwirte__content {
    width: 70%;
    padding-right: 5rem;
  }
}

.single-events__main .single-landwirte__aside {
  width: 100%;
}

@media only screen and (min-width: 768px) {
  .single-events__main .single-landwirte__aside {
    width: 35%;
  }
}

@media only screen and (min-width: 1024px) {
  .single-events__main .single-landwirte__aside {
    width: 30%;
  }
}

.single-events__main .single-landwirte__contact {
  padding-left: 0;
  padding-right: 0;
}


/* ==========================================================================
   Veranstaltungen (archive + single)
   ========================================================================== */

.event__headline {
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--color-text);
  margin: 0;
  font-size: var(--font-size-h4);
  line-height: var(--line-height-heading-md);
  letter-spacing: var(--letter-spacing-tight-xs);
  margin-left: var(--space-side-mobile);
  margin-right: var(--space-side-mobile);
  border-bottom: var(--border-width-medium) solid var(--color-primary-dark);
  padding-bottom: .5em;
}

@media only screen and (min-width: 768px) {
  .event__headline {
    margin-left: var(--space-side-desktop);
    margin-right: var(--space-side-desktop);
    margin-bottom: var(--space-section) !important;
  }
}

.post-type-archive-veranstaltungen #main {
  display: flex;
  flex-direction: column;
  gap: var(--space-section-sm);
}

.event-item {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  padding: 0 !important;
  margin-left: var(--space-side-mobile);
  margin-right: var(--space-side-mobile);
  overflow: hidden;
}

.event-item .event__image {
  max-width: 100%;
  line-height: 0;
  overflow: hidden;
  border-radius: var(--radius-md) var(--radius-md) 0 0 !important;
  aspect-ratio: 16 / 9;
}

.event-item .event__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--duration-accordion) var(--ease-out-expo);
}

@media only screen and (min-width: 768px) {
  .event-item {
    flex-direction: row;
    align-items: stretch;
    margin-left: var(--space-side-desktop);
    margin-right: var(--space-side-desktop);
  }

  .event-item .event__image {
    flex: 0 0 40%;
    border-radius: var(--radius-md) 0 0 var(--radius-md) !important;
  }
}

.event-item .entry-summary {
  margin-top: 1em;
}

.event-item .event__content {
  flex: 1;
  padding: var(--space-lg);
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

@media only screen and (min-width: 768px) {
  .event-item .event__content {
    padding: var(--space-xl) var(--space-2xl);
  }
}

.event-item .event__datewrapper {
  font-family: var(--font-body);
  font-size: var(--font-size-sm);
  line-height: var(--line-height-default);
  color: var(--color-primary);
  font-weight: 600;
  letter-spacing: var(--letter-spacing-tight-xs);
}

.event-item .event__starttime::before {
  content: "| ";
  color: var(--color-primary);
}

.event-item .event__content h2 {
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--color-text);
  margin: 0;
  font-size: clamp(1.35rem, 1.85vw, 1.8rem);
  line-height: var(--line-height-heading-md);
  letter-spacing: var(--letter-spacing-tight-sm);
  margin: 0;
  transition: color var(--duration-base) var(--ease-in-out);
}

.event-item .event__content h2 a {
  text-decoration: none;
}

.event-item:hover .event__content h2 {
  color: var(--color-primary);
}

.event-item .event__excerpt {
  font-size: var(--font-size-sm);
  line-height: var(--line-height-default);
  color: var(--color-text);
  flex: 1;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.event-item:not(:has(.event__image)) .event__content {
  border-left: var(--border-width-medium) solid var(--color-primary);
}

.event-item .event__permalink {
  font-size: var(--font-size-sm);
  line-height: var(--line-height-default);
  font-weight: 600;
  color: var(--color-primary);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: var(--space-2xs);
  transition: color var(--duration-base) var(--ease-in-out), gap var(--duration-base) var(--ease-in-out);
}

.event-item .event__permalink::after {
  content: "→";
  display: inline-block;
  transition: transform var(--duration-base) var(--ease-in-out);
}

.event-item .event__permalink:hover {
  color: var(--color-primary-dark);
  gap: var(--space-xs);
}

.event__description {
  margin-top: var(--space-section);
}

/* The horizontal gutter is provided by the .inside-article wrapper that the
   template now renders around this element; only the flex layout and the
   vertical rhythm remain here. */
.single-events__main {
  margin-top: var(--space-section-sm);
  margin-bottom: var(--space-section-sm);
}

@media only screen and (min-width: 768px) {
  .single-events__main {
    display: flex;
    margin-top: var(--space-section);
    margin-bottom: var(--space-section);
  }
}

.event__gallery {
  display: flex;
  flex-wrap: wrap;
  flex-flow: row wrap;
  position: relative;
}

.event__gallery li {
  flex: 1 0 calc(50% - var(--layout-gallery-gap));
  margin: 5px;
  max-width: calc(50% - var(--layout-gallery-gap));
  line-height: 0;
}

@media only screen and (min-width: 768px) {
  .event__gallery li {
    flex: 1 0 calc(33.3333% - var(--layout-gallery-gap));
    max-width: calc(33.3333% - var(--layout-gallery-gap));
  }
}

@media only screen and (min-width: 1024px) {
  .event__gallery li {
    flex: 1 0 calc(25% - var(--layout-gallery-gap));
    max-width: calc(25% - var(--layout-gallery-gap));
  }
}


/* ==========================================================================
   Map
   ========================================================================== */

.leaflet-map .leaflet-popup-content {
  text-align: center;
}

.leaflet-map .leaflet-popup-content span {
  display: block;
}


/* ==========================================================================
   Footer
   ========================================================================== */

.site-footer {
  background: var(--color-page);
  margin-top: 0;
  padding: 112px 0 0;
}

.site-footer .express-footer__inner {
  width: min(var(--layout-container),100% - var(--layout-container-gutter-footer));
  margin: 0 auto;
  padding: 0 0 118px;
  display: grid;
  grid-template-columns: minmax(260px, 1.18fr) minmax(160px, 0.62fr) minmax(160px, 0.62fr);
  gap: 48px clamp(56px,8vw,150px);
  align-items: start;
}

.site-footer .express-footer__brand {
  max-width: var(--layout-footer-brand);
}

.site-footer .express-footer__logo {
  margin-bottom: 42px;
}

.site-footer .express-footer__logo .custom-logo-link,
.site-footer .express-footer__wordmark {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  border-bottom: none;
}

.site-footer .express-footer__logo .custom-logo {
  width: 128px;
  height: auto;
  display: block;
}

.site-footer .express-footer__wordmark {
  font-family: var(--font-display);
  font-size: 2.8rem;
  font-weight: 800;
  line-height: .9;
  letter-spacing: -0.06em;
  color: var(--color-footer-wordmark);
}

.site-footer .express-footer__wordmark span {
  color: var(--color-footer-wordmark-accent);
}

.site-footer .express-footer__description {
  margin: 0;
  max-width: var(--layout-footer-description);
  font-size: var(--font-size-body);
  line-height: 1.58;
  color: var(--color-text-muted);
}

.site-footer .express-footer__social {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  margin-top: 46px;
}

.site-footer .express-footer__social-link {
  width: 50px;
  height: 50px;
  border: var(--border-width-thin) solid var(--color-line-soft);
  border-radius: var(--radius-xl);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--color-on-dark-84);
  color: var(--color-footer-icon);
  text-decoration: none;
  border-bottom: none;
  transition: transform var(--duration-ui) var(--ease-standard),border-color var(--duration-ui) var(--ease-standard),color var(--duration-ui) var(--ease-standard);
}

.site-footer .express-footer__social-link svg {
  width: 21px;
  height: 21px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.75;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.site-footer .express-footer__social-link:hover,
.site-footer .express-footer__social-link:focus-visible {
  transform: translateY(-2px);
  color: var(--color-primary);
  border-color: var(--color-olive-border-soft);
}

.site-footer .express-footer__social-link--placeholder {
  opacity: .55;
}

.site-footer .express-footer__nav {
  padding-top: 2px;
}

.site-footer .express-footer__links {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 22px;
}

.site-footer .express-footer__links li {
  margin: 0;
  padding: 0;
}

.site-footer .express-footer__links a {
  color: var(--color-text-muted);
  font-family: var(--font-body);
  font-size: clamp(.9rem,.95vw,1.08rem);
  line-height: 1.36;
  text-decoration: none;
  border-bottom: none;
  transition: color var(--duration-ui) var(--ease-standard),text-decoration-color var(--duration-ui) var(--ease-standard);
}

.site-footer .express-footer__links a:hover,
.site-footer .express-footer__links a:focus-visible {
  color: var(--color-primary);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .22em;
}

.site-footer .site-info {
  background: var(--color-transparent);
  border-top: var(--border-width-thin) solid var(--color-line-soft);
  padding: 0;
}

.site-footer .inside-site-info {
  width: min(var(--layout-container),100% - var(--layout-container-gutter-footer));
  margin: 0 auto;
  padding: 26px 0 34px;
  display: flex;
  justify-content: center;
}

.site-footer .express-footer__copyright {
  margin: 0;
  text-align: center;
  font-size: var(--font-size-md);
  line-height: var(--line-height-default);
  color: var(--color-footer-muted);
}

@media(max-width: 980px) {
  .site-footer {
    padding-top: 88px;
  }
  .site-footer .express-footer__inner {
    grid-template-columns: minmax(240px, 1fr) 1fr 1fr;
    gap: 42px 48px;
    padding-bottom: 88px;
  }
}

@media(max-width: 899px) {
  .site-footer .express-footer__inner {
    grid-template-columns: 1fr;
    gap: 42px;
  }
  .site-footer .express-footer__brand {
    max-width: none;
  }
  .site-footer .express-footer__description {
    max-width: 34rem;
  }
  .site-footer .express-footer__nav {
    padding-top: 0;
  }
  .site-footer .express-footer__links {
    gap: 18px;
  }
  .site-footer .express-footer__links a {
    font-size: var(--font-size-body);
  }
}

@media(max-width: 560px) {
  .site-footer {
    padding-top: 72px;
  }
  .site-footer .express-footer__inner,
  .site-footer .inside-site-info {
    width: min(var(--layout-container),100% - 32px);
  }
  .site-footer .express-footer__inner {
    padding-bottom: 72px;
  }
  .site-footer .express-footer__logo {
    margin-bottom: var(--space-footer-mobile);
  }
  .site-footer .express-footer__social {
    gap: 14px;
    margin-top: var(--space-footer-mobile);
  }
  .site-footer .express-footer__social-link {
    width: var(--space-social-mobile);
    height: var(--space-social-mobile);
    border-radius: var(--radius-lg);
  }
  .site-footer .express-footer__links a {
    font-size: var(--font-size-card);
  }
  .site-footer .inside-site-info {
    padding: 22px 0 30px;
  }
  .site-footer .express-footer__copyright {
    font-size: var(--font-size-button);
  }
}


/* ==========================================================================
   404 / not found
   ========================================================================== */

.express-404 {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 60vh;
}

.express-404__inner {
  max-width: 480px;
  margin: 0 auto;
  text-align: center;
}

.express-404__code {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: clamp(6rem,15vw,10rem);
  line-height: var(--line-height-tight);
  letter-spacing: -0.06em;
  color: var(--color-primary);
  opacity: .08;
  margin: 0 0 .75rem;
  user-select: none;
}

.express-404__title {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(1.5rem,4vw,2rem);
  line-height: 1.15;
  letter-spacing: var(--letter-spacing-tight-lg);
  color: var(--color-text);
  margin: 0 0 .75rem;
}

.express-404__text {
  font-size: var(--font-size-card);
  line-height: 1.7;
  color: var(--color-text-muted);
  margin: 0 auto 2.5rem;
  max-width: 40ch;
}

.express-404__inner .search-form {
  max-width: 400px;
  margin: 0 auto 2.5rem;
  display: flex;
  gap: 0;
}

.express-404__inner .search-form .search-field {
  flex: 1;
  padding: 11px 16px;
  border: var(--border-width-thin) solid var(--color-line);
  border-right: none;
  border-radius: var(--radius-sm) 0 0 var(--radius-sm);
  background: var(--color-surface);
  color: var(--color-text);
  font-family: var(--font-body);
  font-size: var(--font-size-card);
  line-height: var(--line-height-default);
  outline: none;
  transition: border-color var(--duration-base) var(--ease-standard);
}

.express-404__inner .search-form .search-field::placeholder {
  color: var(--color-text-muted);
}

.express-404__inner .search-form .search-field:focus {
  border-color: var(--color-primary);
}

.express-404__inner .search-form .search-field:focus-visible {
  outline: var(--focus-ring-width) solid var(--color-accent);
  outline-offset: var(--focus-ring-offset);
}

.express-404__inner .search-form .search-submit {
  padding: 11px 20px;
  background: var(--color-primary);
  color: var(--color-surface);
  border: var(--border-width-thin) solid var(--color-primary);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  font-family: var(--font-body);
  font-size: var(--font-size-button);
  font-weight: 700;
  letter-spacing: var(--letter-spacing-button);
  text-transform: uppercase;
  cursor: pointer;
  transition: background var(--duration-base) var(--ease-standard);
  white-space: nowrap;
}

.express-404__inner .search-form .search-submit:hover,
.express-404__inner .search-form .search-submit:focus-visible {
  background: var(--color-primary-dark);
  border-color: var(--color-primary-dark);
}

.express-404__links {
  list-style: none;
  margin: 0 0 var(--space-section-sm);
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .25rem 0;
}

.express-404__links li {
  margin: 0;
  padding: 0;
}

.express-404__links li:not(:last-child)::after {
  content: "·";
  margin: 0 .6rem;
  color: var(--color-line);
}

.express-404__links a {
  font-size: var(--font-size-md);
  font-weight: 500;
  color: var(--color-primary);
  text-decoration: none;
  padding: .2rem 0;
  transition: color var(--duration-fast) var(--ease-standard);
}

.express-404__links a:hover,
.express-404__links a:focus-visible {
  color: var(--color-text);
  text-decoration: underline;
  text-underline-offset: .22em;
  text-decoration-thickness: 1px;
}

.express-404__home-btn {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2xs);
  padding: 11px var(--space-xl);
  background: var(--color-surface);
  color: var(--color-primary-dark);
  border: var(--border-width-thin) solid var(--color-line);
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: var(--font-size-button);
  font-weight: 700;
  letter-spacing: var(--letter-spacing-button);
  text-decoration: none;
  transition: background var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard),transform var(--duration-fast) var(--ease-standard);
}

.express-404__home-btn:hover,
.express-404__home-btn:focus-visible {
  background: var(--color-surface-soft);
  border-color: var(--color-primary);
  transform: translateY(-1px);
}

.express-404__home-btn svg {
  flex-shrink: 0;
  transition: transform var(--duration-fast) var(--ease-standard);
}

.express-404__home-btn:hover svg {
  transform: translateX(-3px);
}

@media(prefers-reduced-motion: reduce) {
  .express-404__home-btn,
  .express-404__home-btn svg,
  .express-404__links a,
  .express-404__inner .search-form .search-field,
  .express-404__inner .search-form .search-submit {
    transition-duration: var(--duration-instant) !important;
  }
}


/* ==========================================================================
   Forms (Contact Form 7, Shariff)
   ========================================================================== */

.wpcf7-form input[type=text],
.wpcf7-form input[type=email],
.wpcf7-form input[type=tel],
.wpcf7-form input[type=url],
.wpcf7-form input[type=number],
.wpcf7-form input[type=date],
.wpcf7-form input[type=time],
.wpcf7-form input[type=search],
.wpcf7-form textarea,
.wpcf7-form select,
.comment-form input[type=text],
.comment-form input[type=email],
.comment-form input[type=url],
.comment-form textarea,
.elementor-form input[type=text],
.elementor-form input[type=email],
.elementor-form input[type=tel],
.elementor-form input[type=url],
.elementor-form input[type=number],
.elementor-form input[type=date],
.elementor-form input[type=time],
.elementor-form input[type=search],
.elementor-form textarea,
.elementor-form select,
.menu-newsfilter-container input,
.menu-newsfilter-container select,
.widget .search-field {
  display: block;
  width: 100%;
  min-height: var(--form-control-min-height);
  padding: var(--form-control-padding-y) var(--form-control-padding-x);
  border: var(--border-width-thin) solid var(--form-control-border);
  border-radius: var(--form-control-radius);
  background-color: var(--form-control-bg);
  color: var(--color-text);
  font-family: var(--font-body);
  font-size: var(--form-control-font-size);
  line-height: var(--line-height-default);
  outline: none;
  transition: var(--form-transition);
  -webkit-appearance: none;
  appearance: none;
}

.wpcf7-form textarea,
.comment-form textarea,
.elementor-form textarea {
  min-height: 8rem;
  resize: vertical;
}

.wpcf7-form select,
.elementor-form select,
.menu-newsfilter-container select {
  padding-right: calc(var(--form-control-padding-x) + 1.25rem);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%2362665d' d='M1 1.5 6 6.5 11 1.5' stroke='%2362665d' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right var(--form-control-padding-x) center;
  background-size: .75rem auto;
  cursor: pointer;
}

.wpcf7-form select::-ms-expand,
.elementor-form select::-ms-expand,
.menu-newsfilter-container select::-ms-expand {
  display: none;
}

.wpcf7-form input::placeholder,
.wpcf7-form textarea::placeholder,
.comment-form input::placeholder,
.comment-form textarea::placeholder,
.elementor-form input::placeholder,
.elementor-form textarea::placeholder,
.widget .search-field::placeholder {
  color: var(--color-text-muted);
  opacity: 1;
}

.wpcf7-form input:hover,
.wpcf7-form textarea:hover,
.wpcf7-form select:hover,
.comment-form input:hover,
.comment-form textarea:hover,
.elementor-form input:hover,
.elementor-form textarea:hover,
.elementor-form select:hover,
.menu-newsfilter-container input:hover,
.menu-newsfilter-container select:hover,
.widget .search-field:hover {
  border-color: var(--form-control-border-hover);
}

.wpcf7-form input:focus,
.wpcf7-form textarea:focus,
.wpcf7-form select:focus,
.comment-form input:focus,
.comment-form textarea:focus,
.elementor-form input:focus,
.elementor-form textarea:focus,
.elementor-form select:focus,
.menu-newsfilter-container input:focus,
.menu-newsfilter-container select:focus,
.widget .search-field:focus {
  border-color: var(--form-control-border-focus);
  box-shadow: var(--form-control-shadow-focus);
}

.wpcf7-form input:focus-visible,
.wpcf7-form textarea:focus-visible,
.wpcf7-form select:focus-visible,
.comment-form input:focus-visible,
.comment-form textarea:focus-visible,
.elementor-form input:focus-visible,
.elementor-form textarea:focus-visible,
.elementor-form select:focus-visible,
.menu-newsfilter-container input:focus-visible,
.menu-newsfilter-container select:focus-visible,
.widget .search-field:focus-visible {
  outline: var(--focus-ring-width) solid var(--color-accent);
  outline-offset: var(--focus-ring-offset);
}

.wpcf7-form input:disabled,
.wpcf7-form textarea:disabled,
.wpcf7-form select:disabled,
.comment-form input:disabled,
.comment-form textarea:disabled,
.elementor-form input:disabled,
.elementor-form textarea:disabled,
.elementor-form select:disabled {
  opacity: .6;
  cursor: not-allowed;
  background-color: var(--color-surface-soft);
}

.wpcf7-form label,
.comment-form label,
.elementor-field-label {
  display: block;
  margin-bottom: var(--form-label-gap);
  font-size: var(--form-label-size);
  font-weight: var(--form-label-weight);
  line-height: var(--line-height-default);
  color: var(--form-label-color);
  letter-spacing: var(--letter-spacing-ui);
}

.wpcf7-form .wpcf7-list-item-label,
.comment-form .comment-form-cookies-consent label {
  display: inline;
  margin-bottom: 0;
  font-weight: 500;
}

.wpcf7-form>p,
.wpcf7-form .wpcf7-form-control-wrap,
.comment-form>p,
.comment-form .comment-form-comment,
.elementor-field-group {
  margin-bottom: var(--form-field-stack);
}

.wpcf7-form>p:last-of-type,
.comment-form .form-submit {
  margin-bottom: 0;
}

.wpcf7-form .wpcf7-checkbox,
.wpcf7-form .wpcf7-radio,
.comment-form .comment-form-cookies-consent {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm) var(--space-lg);
}

.wpcf7-form .wpcf7-list-item,
.comment-form .comment-form-cookies-consent {
  margin: 0;
}

.wpcf7-form input[type=checkbox],
.wpcf7-form input[type=radio],
.comment-form input[type=checkbox] {
  width: 1.05rem;
  height: 1.05rem;
  min-height: auto;
  margin: .15rem .45rem 0 0;
  padding: 0;
  accent-color: var(--color-primary);
  cursor: pointer;
  vertical-align: top;
}

.wpcf7-form input.wpcf7-not-valid,
.wpcf7-form textarea.wpcf7-not-valid,
.wpcf7-form select.wpcf7-not-valid,
.elementor-form .elementor-field.elementor-field-textual.elementor-error {
  border-color: #b42318;
  box-shadow: 0 0 0 var(--focus-ring-width) rgba(180, 35, 24, .12);
}

.wpcf7-not-valid-tip,
.elementor-message.elementor-message-danger {
  display: block;
  margin-top: var(--space-2xs);
  font-size: var(--font-size-xs);
  line-height: var(--line-height-compact);
  color: #b42318;
}

.wpcf7-response-output,
.elementor-message {
  margin: var(--form-group-stack) 0 0;
  padding: var(--space-sm) var(--space-md);
  border: var(--border-width-thin) solid var(--color-line);
  border-radius: var(--form-control-radius);
  font-size: var(--form-label-size);
  line-height: var(--line-height-compact);
}

.wpcf7 form.sent .wpcf7-response-output,
.elementor-message.elementor-message-success {
  border-color: rgba(42, 68, 19, .25);
  background: var(--color-surface-tint);
  color: var(--color-primary-dark);
}

.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output,
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output,
.elementor-message.elementor-message-danger {
  border-color: rgba(180, 35, 24, .25);
  background: #fef3f2;
  color: #7a271a;
}

.wpcf7-form input[type=submit],
.wpcf7-form button[type=submit],
.comment-form input[type=submit],
.elementor-form .elementor-field-type-submit .elementor-button,
.widget .search-form button.search-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--form-control-min-height);
  padding: var(--form-control-padding-y) var(--space-xl);
  border: var(--border-width-thin) solid var(--color-primary);
  border-radius: var(--form-control-radius);
  background: var(--color-primary);
  color: var(--color-surface);
  font-family: var(--font-body);
  font-size: var(--font-size-button);
  font-weight: 700;
  letter-spacing: var(--letter-spacing-button);
  line-height: var(--line-height-default);
  text-transform: uppercase;
  cursor: pointer;
  transition: var(--transition-button);
  width: auto;
}

.wpcf7-form input[type=submit]:hover,
.wpcf7-form input[type=submit]:focus-visible,
.wpcf7-form button[type=submit]:hover,
.wpcf7-form button[type=submit]:focus-visible,
.comment-form input[type=submit]:hover,
.comment-form input[type=submit]:focus-visible,
.elementor-form .elementor-field-type-submit .elementor-button:hover,
.elementor-form .elementor-field-type-submit .elementor-button:focus-visible,
.widget .search-form button.search-submit:hover,
.widget .search-form button.search-submit:focus-visible {
  background: var(--color-primary-dark);
  border-color: var(--color-primary-dark);
  transform: translateY(-1px);
}

.wpcf7-form input[type=submit]:focus-visible,
.wpcf7-form button[type=submit]:focus-visible,
.comment-form input[type=submit]:focus-visible,
.elementor-form .elementor-field-type-submit .elementor-button:focus-visible,
.widget .search-form button.search-submit:focus-visible {
  outline: var(--focus-ring-width) solid var(--color-accent);
  outline-offset: var(--focus-ring-offset);
}

.wpcf7-spinner {
  margin-left: var(--space-sm);
  vertical-align: middle;
}

.widget .search-form {
  display: flex;
  gap: 0;
}

.widget .search-field {
  flex: 1;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

.widget .search-form button.search-submit {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  white-space: nowrap;
}

@media(max-width: 560px) {
  .widget .search-form {
    flex-direction: column;
    gap: var(--space-2xs);
  }
  .widget .search-field,
  .widget .search-form button.search-submit {
    border-radius: var(--form-control-radius);
  }
}

@media(prefers-reduced-motion: reduce) {
  .wpcf7-form input[type=submit],
  .wpcf7-form button[type=submit],
  .comment-form input[type=submit],
  .elementor-form .elementor-field-type-submit .elementor-button,
  .widget .search-form button.search-submit {
    transition-duration: var(--duration-instant) !important;
  }
  .wpcf7-form input[type=submit]:hover,
  .wpcf7-form input[type=submit]:focus-visible,
  .wpcf7-form button[type=submit]:hover,
  .wpcf7-form button[type=submit]:focus-visible,
  .comment-form input[type=submit]:hover,
  .comment-form input[type=submit]:focus-visible,
  .elementor-form .elementor-field-type-submit .elementor-button:hover,
  .elementor-form .elementor-field-type-submit .elementor-button:focus-visible,
  .widget .search-form button.search-submit:hover,
  .widget .search-form button.search-submit:focus-visible {
    transform: none;
  }
}

.shariff {
  margin-top: var(--space-section);
}


/* ==========================================================================
   WordPress core blocks
   ========================================================================== */

.wp-block-media-text__content h2,
.wp-block-media-text__content h3 {
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--color-text);
  margin: 0;
  font-size: var(--font-size-h4);
  line-height: var(--line-height-heading-md);
  letter-spacing: var(--letter-spacing-tight-xs);
}

.wp-block-media-text__content p {
  font-size: var(--font-size-sm);
  line-height: var(--line-height-default);
}

.wp-block-button__link {
  font-size: .85em !important;
  background-color: var(--color-transparent) !important;
  border: var(--border-width-thin) solid var(--color-line) !important;
  color: var(--color-text) !important;
  border-radius: var(--radius-sm);
  box-shadow: inherit;
  letter-spacing: var(--letter-spacing-ui);
}

.wp-block-button__link:hover {
  background-color: var(--color-surface) !important;
}


/* ==========================================================================
   Elementor base typography mapping
   ========================================================================== */

.elementor-template-full-width .site-content {
  padding: var(--main-gutter);
}

@media only screen and (min-width: 768px) {
  .elementor-template-full-width .site-content {
    padding: var(--main-gutter);
  }
}

.elementor-114 {
  margin-top: var(--space-3xl);
  padding-top: var(--space-3xl);
}

.elementor-swiper-button {
  opacity: .25;
}

.elementor-swiper-button:hover {
  opacity: 1;
}

.elementor-swiper-button-prev {
  display: block;
}

@media(min-width: 768px) {
  .elementor-swiper-button-prev {
    left: -50px !important;
  }
}

.elementor-swiper-button-next {
  display: block;
}

@media(min-width: 768px) {
  .elementor-swiper-button-next {
    right: -50px !important;
  }
}

.team-container .elementor-container {
  column-gap: var(--space-inline-card);
}

.banner-newsletter .elementor-background-overlay {
  display: none;
}

.banner-newsletter .elementor-container {
  max-width: 720px;
  margin: 0 auto;
}


/* ==========================================================================
   Elementor widgets
   ========================================================================== */

body .elementor .elementor-widget-heading .elementor-heading-title {
  margin-top: 0;
  margin-bottom: 0;
  color: var(--color-text);
}

body .elementor .elementor-element.elementor-widget-heading,
body .elementor .elementor-element.elementor-widget-heading .elementor-heading-title {
  text-align: left !important;
}

body .elementor .elementor-element .elementor-widget-heading .elementor-heading-title.elementor-size-xxl {
  font-family: var(--font-display);
  font-weight: 800;
  color: var(--color-text);
  margin: 0;
  font-size: var(--font-size-display);
  line-height: var(--line-height-tight);
  letter-spacing: var(--letter-spacing-tight-xl);
  margin-bottom: 0;
}

body .elementor .elementor-element .elementor-widget-heading .elementor-heading-title.elementor-size-xl {
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--color-text);
  margin: 0;
  font-size: var(--font-size-h1);
  line-height: var(--line-height-heading-xs);
  letter-spacing: var(--letter-spacing-tight-lg);
  margin-bottom: 0;
}

body .elementor .elementor-element .elementor-widget-heading .elementor-heading-title.elementor-size-large {
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--color-text);
  margin: 0;
  font-size: var(--font-size-h3);
  line-height: var(--line-height-heading-md);
  letter-spacing: var(--letter-spacing-tight-sm);
  margin-bottom: 0;
}

body .elementor .elementor-element .elementor-widget-heading .elementor-heading-title.elementor-size-medium {
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--color-text);
  margin: 0;
  font-size: var(--font-size-h4);
  line-height: var(--line-height-heading-md);
  letter-spacing: var(--letter-spacing-tight-xs);
}

body .elementor .elementor-element .elementor-widget-heading .elementor-heading-title.elementor-size-small {
  font-family: var(--font-body);
  font-size: var(--font-size-body);
  font-weight: 400;
  line-height: var(--line-height-body);
  color: var(--color-text);
}

body .elementor .elementor-element .elementor-widget-heading h4.elementor-heading-title.elementor-size-small {
  font-size: var(--font-size-h4);
  line-height: var(--line-height-heading-md);
}

body .elementor .elementor-widget-heading h1.elementor-heading-title.elementor-size-default {
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--color-text);
  margin: 0;
  font-size: var(--font-size-h1);
  line-height: var(--line-height-heading-xs);
  letter-spacing: var(--letter-spacing-tight-lg);
}

body .elementor .elementor-widget-heading h2.elementor-heading-title.elementor-size-default {
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--color-text);
  margin: 0;
  font-size: var(--font-size-h2);
  line-height: var(--line-height-heading-sm);
  letter-spacing: var(--letter-spacing-tight-md);
  text-align: left;
}

body .elementor .elementor-widget-heading h3.elementor-heading-title.elementor-size-default {
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--color-text);
  margin: 0;
  font-size: var(--font-size-h3);
  line-height: var(--line-height-heading-md);
  letter-spacing: var(--letter-spacing-tight-sm);
}

body .elementor .elementor-widget-heading h4.elementor-heading-title.elementor-size-default,
body .elementor .elementor-widget-heading h5.elementor-heading-title.elementor-size-default,
body .elementor .elementor-widget-heading h6.elementor-heading-title.elementor-size-default {
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--color-text);
  margin: 0;
  font-size: var(--font-size-h4);
  line-height: var(--line-height-heading-md);
  letter-spacing: var(--letter-spacing-tight-xs);
}

body .elementor .elementor-widget-heading h4.elementor-heading-title {
  font-weight: 500;
}

body .elementor .elementor-element .elementor-widget-heading h4.elementor-heading-title[class*=elementor-size-] {
  font-weight: 500;
}

body .elementor .elementor-widget-text-editor .elementor-widget-container,
body .elementor .elementor-widget-text-editor .elementor-widget-container p,
body .elementor .elementor-widget-text-editor .elementor-widget-container li {
  font-family: var(--font-body);
  font-size: var(--font-size-body);
  line-height: var(--line-height-body);
  color: var(--color-text);
}

body .elementor .elementor-widget-text-editor .elementor-widget-container p {
  margin-top: 0;
  margin-bottom: .75em;
}

body .elementor .elementor-widget-text-editor .elementor-widget-container p:last-child {
  margin-bottom: 0;
}

body .elementor .elementor-widget-text-editor .elementor-widget-container h1,
body .elementor .elementor-widget-text-editor .elementor-widget-container h2,
body .elementor .elementor-widget-text-editor .elementor-widget-container h3,
body .elementor .elementor-widget-text-editor .elementor-widget-container h4,
body .elementor .elementor-widget-text-editor .elementor-widget-container h5 {
  margin-top: 1em;
  margin-bottom: .4em;
  hyphens: none;
  overflow-wrap: normal;
  word-break: normal;
}

body .elementor .elementor-widget-icon-box .elementor-icon-box-title,
body .elementor .elementor-widget-icon-box .elementor-icon-box-title a {
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--color-text);
  margin: 0;
  font-size: var(--font-size-h4);
  line-height: var(--line-height-heading-md);
  letter-spacing: var(--letter-spacing-tight-xs);
  color: var(--color-text);
  margin: 0;
  hyphens: none;
  overflow-wrap: normal;
  word-break: normal;
}

body .elementor .elementor-widget-icon-box .elementor-icon-box-description {
  font-size: var(--font-size-sm);
  line-height: var(--line-height-default);
  color: var(--color-text-muted);
  hyphens: none;
  overflow-wrap: normal;
  word-break: normal;
}

.elementor-button-wrapper a:link,
.elementor-button-wrapper a:visited {
  background-color: var(--color-primary);
  color: var(--color-surface);
  border-radius: var(--radius-sm);
  box-shadow: inherit;
  font-size: var(--font-size-sm);
  line-height: var(--line-height-default);
  font-weight: 700;
  letter-spacing: var(--letter-spacing-ui);
}

.elementor-button-wrapper a:hover {
  background-color: var(--color-primary-dark);
}

body .site-main .entry-content .elementor-column-wrap .elementor-widget-wrap .ha-justified-gallery .elementor-widget-container .ha-gallery-filter button,
body .elementor-widget-ha-card .ha-btn,
.elementor-button-info .elementor-button-wrapper .elementor-button-link {
  background: var(--color-surface);
  color: var(--color-text);
  border: var(--border-width-thin) solid var(--color-line);
  border-radius: var(--radius-sm);
  text-transform: uppercase;
}

body .site-main .entry-content .elementor-column-wrap .elementor-widget-wrap .ha-justified-gallery .elementor-widget-container .ha-filter-active button,
body .site-main .entry-content .elementor-column-wrap .elementor-widget-wrap .ha-justified-gallery .elementor-widget-container .ha-gallery-filter button:hover,
body .elementor-widget-ha-card .ha-btn:hover,
.elementor-button-info .elementor-button-wrapper .elementor-button-link:hover {
  background-color: var(--color-surface-tint) !important;
  border: var(--border-width-thin) solid var(--color-line) !important;
  color: var(--color-text);
}

.elementor-button-info .elementor-button-wrapper .elementor-button-link {
  background-color: var(--color-surface) !important;
}

.elementor-button-success .elementor-button-wrapper .elementor-button-link {
  background-color: var(--color-primary);
}

.elementor-button-success .elementor-button-wrapper .elementor-button-link:hover {
  background-color: var(--color-primary-dark);
}

.elementor-image-carousel {
  display: flex;
  align-items: center;
}

.eicon-chevron-left,
.eicon-chevron-right {
  color: var(--color-text);
}

.partnerlogos .elementor-column-wrap {
  padding: 0 !important;
}

.partnerlogos .elementor-widget-image {
  text-align: center;
  margin-bottom: var(--space-section-sm);
  padding-bottom: 1em;
  border-bottom: var(--border-width-thin) solid var(--color-primary-dark);
}

.partnerlogos .ha-slick-item {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 120px;
}

.partnerlogos .ha-slick-img {
  max-height: 90px;
  width: auto;
  object-fit: contain;
}

.partnerlogos .ha-slick-content {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

@media only screen and (min-width: 768px) {
  .partnerlogos .elementor-widget-image {
    padding-bottom: auto;
    margin-bottom: auto;
    text-align: left;
    border-right: var(--border-width-thin) solid var(--color-line);
    border-bottom: none;
  }
}

.elementor-accordion .elementor-accordion-item {
  background: var(--color-surface);
  margin-top: var(--space-lg);
  border: var(--border-width-thin) solid var(--color-line) !important;
  border-radius: var(--radius-sm);
  transition: all var(--duration-accordion) var(--ease-out-expo);
}

.elementor-accordion .elementor-accordion-item .elementor-tab-title {
  padding: 1.5em 2em;
}

.elementor-accordion .elementor-accordion-item .elementor-tab-title a {
  font-family: var(--font-body);
  font-size: var(--font-size-body);
  line-height: var(--line-height-body);
  color: var(--color-text);
  font-weight: 400;
  color: var(--color-text);
}

.elementor-accordion .elementor-accordion-item .elementor-tab-title:hover a,
.elementor-accordion .elementor-accordion-item .elementor-tab-title.elementor-active a {
  color: var(--color-primary);
}

.elementor-accordion .elementor-accordion-item .elementor-tab-content {
  color: var(--color-text-muted);
  padding: 0 2em 2em;
}

.elementor-accordion .elementor-accordion-item .elementor-tab-content.elementor-active {
  border-top-color: var(--color-transparent) !important;
}

.timeline:before {
  background-color: var(--color-line);
}

.timeline li .timeline-panel {
  border-color: var(--color-line);
  border-radius: var(--radius-sm);
  box-shadow: none !important;
}

.timeline .timeline-panel .tl-heading .be-title {
  font-family: var(--font-body);
  font-size: var(--font-size-body);
  line-height: var(--line-height-body);
  color: var(--color-text);
  font-weight: 700 !important;
  text-transform: inherit;
}

.timeline .tl-content p {
  font-size: var(--font-size-sm);
  line-height: var(--line-height-default);
}

.timeline .text-muted {
  border-radius: var(--radius-sm);
}

.timeline li .tl-circ {
  background: var(--color-surface);
  border-color: var(--color-accent);
}

.timeline a:hover {
  color: var(--color-text);
}

.be-pack.timeline .timeline_pic {
  padding: 0 0 10px 0;
}

body .ha-card>.elementor-widget-container {
  box-shadow: var(--shadow-lg);
  border-radius: var(--radius-md);
}

body .ha-card>.elementor-widget-container figure {
  border-radius: var(--radius-md) var(--radius-md) 0 0;
  overflow: hidden;
}

body .ha-card>.elementor-widget-container figure img {
  transition: var(--transition-image-slow);
  border-radius: var(--radius-md) var(--radius-md) 0 0;
}

/* Ertragsoptimierung, Datenkompetenz and Dokumentation cards have
   --ha-card-image-width:1% and opacity:0.1 set by mistake in Elementor.
   Override here until corrected in the Elementor widget settings. */
.elementor-57 .elementor-element.elementor-element-2482db41,
.elementor-57 .elementor-element.elementor-element-3233c272,
.elementor-57 .elementor-element.elementor-element-517a158 {
  --ha-card-image-width: 100% !important;
}
.elementor-57 .elementor-element.elementor-element-3233c272 .ha-card-figure img,
.elementor-57 .elementor-element.elementor-element-517a158 .ha-card-figure img {
  opacity: 1 !important;
}

/* HappyAddons card figures that hold an SVG icon (rather than a photo).
   The plugin defaults force the figure to 250px tall and stretch the img
   to 100%/100% with object-fit:cover — fine for photography, wrong for
   line-art icons. Detect the SVG case via attribute selector so the rule
   stays decoupled from individual Elementor element IDs. */
body .ha-card .ha-card-figure:has(> img[src$=".svg"]) {
  display: flex;
  align-items: center;
  justify-content: center;
  height: auto;
  padding: var(--space-2xl) var(--space-2xl) 0;
  background: var(--color-surface);
}

body .ha-card .ha-card-figure > img[src$=".svg"] {
  width: auto;
  max-width: 27%;
  height: auto;
  max-height: 64px;
  object-fit: contain;
}

body .ha-card>.elementor-widget-container .ha-card-title {
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--color-text);
  margin: 0;
  font-size: clamp(0.95rem, 1.15vw, 1.1rem);
  line-height: var(--line-height-heading-md);
  letter-spacing: var(--letter-spacing-tight-sm);
  overflow-wrap: break-word;
  hyphens: auto;
}

body .ha-card>.elementor-widget-container .ha-card-text p {
  font-weight: 400;
  font-size: var(--font-size-sm);
  line-height: var(--line-height-default);
  color: var(--color-text-soft);
}

body .ha-card>.elementor-widget-container .ha-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .45em;
  max-width: 100%;
  min-height: 44px;
  padding: .85em 1.1em;
  font-size: var(--font-size-button) !important;
  font-weight: 700;
  line-height: var(--line-height-tight);
  text-transform: none !important;
  color: var(--color-primary);
  background: var(--color-surface);
  border: var(--border-width-thin) solid var(--color-olive-border-soft);
  border-radius: var(--radius-sm);
  text-decoration: none;
  white-space: nowrap;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

body .ha-card>.elementor-widget-container .ha-btn-icon+.ha-btn-text,
body .ha-card>.elementor-widget-container .ha-btn-text+.ha-btn-icon {
  margin-left: 0;
}

body .ha-card>.elementor-widget-container .ha-btn-icon,
body .ha-card>.elementor-widget-container .ha-btn-text {
  min-width: 0;
}

body .ha-card>.elementor-widget-container .ha-btn-icon {
  flex: 0 0 auto;
}

body .ha-card>.elementor-widget-container .ha-btn-text {
  flex: 1 1 auto;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

body .ha-card>.elementor-widget-container .ha-btn:hover {
  background: var(--color-surface-tint) !important;
  border-color: var(--color-primary);
  color: var(--color-primary);
}

body .ha-card>.elementor-widget-container .ha-btn:focus-visible {
  outline: var(--focus-ring-width) solid var(--color-accent);
  outline-offset: var(--focus-ring-offset);
}

body .ha-card>.elementor-widget-container:hover {
  box-shadow: var(--shadow-sm);
}

body .ha-card>.elementor-widget-container:hover img {
  transition: var(--transition-image-slow);
  transform: scale(1.05);
}

body .ha-card>.elementor-widget-container:hover .ha-btn {
  background-color: var(--color-surface-soft);
}

body .ha-infobox .elementor-widget-container {
  background: var(--color-surface-tint);
  border-radius: var(--radius-md);
  border: 20px solid var(--color-surface);
  box-shadow: var(--shadow-sm);
}

body .elementor-3515 .elementor-element:is(.elementor-element-ed33d98, .elementor-element-f9d22e6)>.elementor-widget-container {
  background: var(--color-surface-tint) !important;
  border: 20px solid var(--color-surface);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
  padding: 25px !important;
}

body .elementor-3515 .elementor-element:is(.elementor-element-ed33d98, .elementor-element-f9d22e6)>.elementor-widget-container img {
  width: 100%;
  margin: var(--space-lg) 0;
  border-radius: var(--radius-md);
}

body .ha-infobox>.elementor-widget-container .ha-btn.ha-btn--link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: .85em 1.1em;
  font-size: var(--font-size-button) !important;
  font-weight: 700;
  line-height: var(--line-height-tight);
  color: var(--color-primary) !important;
  background: var(--color-surface) !important;
  border: var(--border-width-thin) solid var(--color-olive-border-soft) !important;
  border-radius: var(--radius-sm);
  text-decoration: none;
  white-space: nowrap;
}

body .ha-infobox>.elementor-widget-container .ha-btn.ha-btn--link:hover,
body .ha-infobox>.elementor-widget-container .ha-btn.ha-btn--link:focus-visible {
  color: var(--color-primary) !important;
  background: var(--color-surface) !important;
  border-color: var(--color-primary) !important;
}

body .ha-infobox>.elementor-widget-container .ha-btn.ha-btn--link:focus-visible {
  outline: var(--focus-ring-width) solid var(--color-accent);
  outline-offset: var(--focus-ring-offset);
}

.loesungen-cards .elementor-widget-icon-box .elementor-icon-box-wrapper {
  background: var(--color-surface-soft);
  border-radius: var(--radius-md);
  padding: 1.5rem 1.75rem;
  align-items: flex-start;
  gap: var(--space-md);
  transition: var(--transition-surface);
}

.loesungen-cards .elementor-widget-icon-box .elementor-icon-box-wrapper:hover {
  background: var(--color-card-hover);
}

.loesungen-cards .elementor-widget-icon-box .elementor-icon-box-icon .elementor-icon {
  background: var(--color-surface);
  border-radius: 6px;
  width: var(--space-control);
  height: var(--space-control);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.loesungen-cards .elementor-widget-icon-box .elementor-icon-box-icon .elementor-icon i,
.loesungen-cards .elementor-widget-icon-box .elementor-icon-box-icon .elementor-icon svg {
  color: var(--color-primary);
  font-size: 1.2rem;
}

.loesungen-cards .elementor-widget-icon-box .elementor-icon-box-title,
.loesungen-cards .elementor-widget-icon-box .elementor-icon-box-title a {
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--color-text);
  margin: 0;
  font-size: var(--font-size-h4);
  line-height: var(--line-height-heading-md);
  letter-spacing: var(--letter-spacing-tight-xs);
  color: var(--color-text);
  margin: 0;
  hyphens: none;
  overflow-wrap: normal;
  word-break: normal;
}

.loesungen-cards .elementor-widget-icon-box .elementor-icon-box-description {
  font-size: var(--font-size-sm);
  line-height: var(--line-height-default);
  color: var(--color-text-muted);
  margin-top: .35rem;
  hyphens: none;
  overflow-wrap: normal;
  word-break: normal;
}

/*
.team__item>.elementor-element-populated {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 0 !important;
  background: var(--color-surface);
  border: var(--border-width-thin) solid var(--color-line);
  box-shadow: var(--shadow-sm);
  border-radius: var(--radius-md);
  overflow: hidden;
  transition: transform 240ms ease,box-shadow 240ms ease;
}

.team__item>.elementor-element-populated:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-lg);
}

.team__item .elementor-widget-image {
  margin: 0 !important;
}

.team__item .elementor-widget-image .elementor-widget-container {
  line-height: 0;
}

.team__item .elementor-widget-image img {
  display: block;
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  object-position: top center;
  transition: transform 600ms ease;
}*/

.team__item:hover .elementor-widget-image img {
  transform: scale(1.02);
}

.team__item .elementor-widget-heading,
.team__item .elementor-widget-text-editor,
.team__item .elementor-widget-button {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.team__item .elementor-widget-heading {
  padding-top: 16px !important;
  padding-bottom: 0 !important;
  margin: 0 !important;
}

.team__item .elementor-widget-heading+.elementor-widget-heading {
  padding-top: var(--space-3xs) !important;
  padding-bottom: 12px !important;
}

body .elementor .team__item .elementor-widget-heading h2,
body .elementor .team__item .elementor-widget-heading h2.elementor-heading-title {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(1.12rem,1.35vw,1.35rem);
  line-height: 1.1;
  letter-spacing: var(--letter-spacing-tight-lg);
  color: var(--color-text);
  margin: 0;
}

body .elementor .team__item .elementor-widget-heading h4,
body .elementor .team__item .elementor-widget-heading h4.elementor-heading-title {
  font-family: var(--font-body);
  font-size: var(--font-size-body-lg);
  font-weight: 500;
  line-height: var(--line-height-compact);
  letter-spacing: 0;
  color: var(--color-text-muted);
  margin: 0;
}

.team__item .elementor-widget-text-editor {
  flex: 1;
  padding-bottom: var(--space-3xs) !important;
}

.team__item .elementor-widget-text-editor p {
  font-size: var(--font-size-md);
  line-height: var(--line-height-compact);
  color: var(--color-text-soft);
  margin: 0;
}

.team__item .elementor-widget-button {
  padding-top: 12px !important;
  padding-bottom: 20px !important;
}

.team__item .elementor-widget-button .elementor-button {
  font-size: var(--font-size-sm);
  line-height: var(--line-height-default);
  font-weight: 700;
}

@media(max-width: 1140px) {
  .team__item .elementor-widget-heading,
  .team__item .elementor-widget-text-editor,
  .team__item .elementor-widget-button {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

@media(max-width: 560px) {
  .team__item .elementor-widget-heading,
  .team__item .elementor-widget-text-editor,
  .team__item .elementor-widget-button {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

body .elementor .elementor-section.banner-newsletter.elementor-section:not(.elementor-motion-effects-element-type-background),
body .elementor .elementor-section.banner-newsletter.elementor-section>.elementor-motion-effects-container>.elementor-motion-effects-layer {
  background-color: var(--color-surface-tint) !important;
  background-image: none !important;
}

body .elementor .elementor-section.banner-newsletter.elementor-section {
  width: min(var(--layout-banner),100% - var(--layout-container-gutter));
  max-width: var(--layout-banner);
  margin-left: auto;
  margin-right: auto;
  padding: 56px 24px 58px !important;
}

body .elementor .elementor-section.banner-newsletter.elementor-section>.elementor-background-overlay {
  display: none !important;
  opacity: 0 !important;
}

body .elementor .elementor-section.banner-newsletter.elementor-section>.elementor-container {
  max-width: var(--layout-banner-content);
  margin: 0 auto;
}

body .elementor .banner-newsletter .banner__subhead,
body .elementor .banner-newsletter .banner__subhead .elementor-widget-container,
body .elementor .banner-newsletter .banner__subhead .elementor-widget-container p {
  font-family: var(--font-body);
  font-size: var(--font-size-body);
  line-height: var(--line-height-body);
  color: var(--color-text-muted) !important;
}

body .elementor .banner-newsletter .elementor-widget.banner__subhead {
  --container-widget-width: 100%;
  --container-widget-flex-grow: 0;
  width: 100% !important;
  max-width: var(--layout-banner-subhead) !important;
  margin-left: auto;
  margin-right: auto;
  text-align: center !important;
}

body .elementor .banner-newsletter .elementor-widget.banner__subhead .elementor-widget-container {
  width: 100%;
  text-align: center !important;
}

.banner__headline h3,
body .elementor .banner-newsletter .banner__headline h3.elementor-heading-title {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(2rem,3vw,2.8rem);
  font-weight: 800;
  letter-spacing: -0.045em;
  line-height: 1.02;
  text-transform: none;
  color: var(--color-text);
}

body .elementor .banner-newsletter .banner__headline,
body .elementor .banner-newsletter .banner__headline .elementor-widget-container,
body .elementor .banner-newsletter .banner__headline .elementor-heading-title {
  text-align: center !important;
}

.banner__button .elementor-button,
.banner__button .elementor-button:link,
.banner__button .elementor-button:visited {
  border-radius: 0;
  background: var(--color-primary-dark) !important;
  color: var(--color-surface) !important;
  padding: 16px 28px;
  font-size: var(--font-size-xs);
  line-height: var(--line-height-default);
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  min-width: 168px;
}

body .elementor .elementor-element.elementor-element-5d38aace>.elementor-container {
  column-gap: 36px;
}

@media(max-width: 767px) {
  body .elementor .elementor-element.elementor-element-5d38aace>.elementor-container {
    column-gap: 0;
  }
}

.elementor-element-0ba1f0a .elementor-element-74bb200>.elementor-container {
  max-width: none !important;
}

.elementor-element-0ba1f0a.elementor-invisible,
.elementor-element-0ba1f0a.animated,
.elementor-element-0ba1f0a.animated-slow {
  animation: none !important;
  opacity: 1 !important;
  visibility: visible !important;
}

.elementor-element-0ba1f0a .mainheading {
  text-align: left;
  margin-bottom: .25rem;
}

.elementor-element-0ba1f0a .mainheading:before {
  display: none;
}

.elementor-element-0ba1f0a .mainheading h2 {
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--color-text);
  margin: 0;
  font-size: var(--font-size-h2);
  line-height: var(--line-height-heading-sm);
  letter-spacing: var(--letter-spacing-tight-md);
  background: none;
  padding: 0 !important;
  text-align: left;
}

.elementor-element-0ba1f0a .elementor-widget-heading {
  text-align: left !important;
}

.elementor-element-0ba1f0a .elementor-element-615b6b2 {
  text-align: left !important;
}

.elementor-element-0ba1f0a .elementor-element-615b6b2 p {
  font-family: var(--font-body);
  font-size: var(--font-size-body);
  line-height: var(--line-height-body);
  color: var(--color-text);
  color: var(--color-text-muted);
  max-width: 56ch;
  margin-top: var(--space-stack-sm);
}

.home .elementor-2 .elementor-element-307052e h2,
.home .elementor-2 .elementor-element-1c288be h2,
.home .elementor-2 .elementor-element-ad7db30 h2,
.home .elementor-2 .elementor-element-615b6b2 p,
.home .elementor-2 .elementor-element-6665652 p,
.home .elementor-2 .elementor-element-26a95dd p {
  margin-left: 0 !important;
  padding-left: 0 !important;
}

.home .elementor-2 .elementor-element-6a5a149 .elementor-widget-heading,
.home .elementor-2 .elementor-element-6a5a149 .elementor-widget-text-editor,
.home .elementor-2 .elementor-element-6a5a149 .elementor-widget-button,
.home .elementor-2 .elementor-element-6a5a149 .elementor-widget-container,
.home .elementor-2 .elementor-element-6a5a149 .elementor-button-wrapper,
.home .elementor-2 .elementor-element-7425444 .elementor-widget-heading,
.home .elementor-2 .elementor-element-7425444 .elementor-widget-text-editor,
.home .elementor-2 .elementor-element-7425444 .elementor-widget-button,
.home .elementor-2 .elementor-element-7425444 .elementor-widget-container,
.home .elementor-2 .elementor-element-7425444 .elementor-button-wrapper {
  text-align: left !important;
}

.home .elementor-2 .elementor-element-06b5191 {
  --project-card-gutter: var(--space-xs);
}

.home .elementor-2 .elementor-element-06b5191 .elementor-container {
  margin-left: auto;
  margin-right: auto;
}

.home .elementor-2 .elementor-element-06b5191 .elementor-column {
  display: flex;
  box-sizing: border-box;
  padding-left: var(--project-card-gutter);
  padding-right: var(--project-card-gutter);
}

.home .elementor-2 .elementor-element-06b5191 .elementor-column>.elementor-element-populated {
  display: flex;
  flex-direction: column;
  gap: var(--space-xl);
  height: 100%;
  padding: 0;
  background: var(--color-surface);
  border: var(--border-width-thin) solid var(--color-line);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
  transition: var(--transition-card);
}

.home .elementor-2 .elementor-element-06b5191 .elementor-column>.elementor-element-populated:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-lg);
}

.home .elementor-2 .elementor-element-06b5191 .elementor-widget-image {
  margin: 0 !important;
}

.home .elementor-2 .elementor-element-06b5191 .elementor-widget-image .elementor-widget-container {
  position: relative;
  line-height: 0;
  overflow: hidden;
}

.home .elementor-2 .elementor-element-06b5191 .elementor-widget-image .elementor-widget-container::before {
  content: "";
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  position: absolute;
  top: 14px;
  left: 14px;
  z-index: var(--z-content);
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--space-icon-badge);
  height: var(--space-icon-badge);
  border-radius: var(--radius-pill);
  background: var(--color-on-dark-92);
  color: var(--color-primary);
  font-size: 15px;
  box-shadow: var(--shadow-badge);
  pointer-events: none;
}

.home .elementor-2 .elementor-element-06b5191 .elementor-widget-image .elementor-widget-container::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: var(--z-raised);
  pointer-events: none;
  background: linear-gradient(180deg, rgba(13, 19, 10, 0) 58%, rgba(13, 19, 10, 0.08));
}

.home .elementor-2 .elementor-element-06b5191 .elementor-widget-image img {
  display: block;
  width: 100%;
  aspect-ratio: 1.42/1;
  object-fit: cover;
  transition: var(--transition-image);
}

.home .elementor-2 .elementor-element-06b5191 .elementor-column:hover .elementor-widget-image img {
  transform: scale(1.02);
}

.home .elementor-2 .elementor-element-06b5191 .team__heading,
.home .elementor-2 .elementor-element-06b5191 .elementor-widget-text-editor {
  padding-left: var(--space-inline-card) !important;
  padding-right: var(--space-inline-card) !important;
}

.home .elementor-2 .elementor-element-06b5191 .team__heading {
  margin: 0;
}

.home .elementor-2 .elementor-element-06b5191 .team__heading .elementor-heading-title,
.home .elementor-2 .elementor-element-06b5191 .team__heading h4 {
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--color-text);
  margin: 0;
  font-size: var(--font-size-h3);
  line-height: var(--line-height-heading-md);
  letter-spacing: var(--letter-spacing-tight-sm);
  color: var(--color-primary-dark);
  margin: 0;
  font-size: var(--font-size-h4);
  line-height: var(--line-height-heading-md);
  letter-spacing: -0.05em;
}

.home .elementor-2 .elementor-element-06b5191 .elementor-widget-text-editor {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding-bottom: 28px !important;
}

.home .elementor-2 .elementor-element-06b5191 .elementor-widget-text-editor .elementor-widget-container {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: var(--space-2xs);
}

.home .elementor-2 .elementor-element-06b5191 .elementor-widget-text-editor p {
  color: var(--color-text-muted);
  font-size: var(--font-size-card);
  line-height: var(--line-height-compact);
  margin: 0;
}

.home .elementor-2 .elementor-element-06b5191 .elementor-widget-text-editor a[href*="/experimentierfelder/"] {
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  gap: var(--space-2xs);
  font-size: var(--font-size-xs);
  line-height: var(--line-height-default);
  font-weight: 700;
  letter-spacing: var(--letter-spacing-label);
  text-transform: uppercase;
  color: var(--color-primary-dark);
}

.home .elementor-2 .elementor-element-06b5191 .elementor-widget-text-editor a[href*="/experimentierfelder/"]::after {
  content: "";
  width: 7px;
  height: 7px;
  border-top: 1.5px solid currentColor;
  border-right: 1.5px solid currentColor;
  transform: rotate(45deg);
}

.home .elementor-2 .elementor-element-06b5191 .elementor-widget-text-editor p>a[href*="/experimentierfelder/"] {
  margin-top: var(--space-stack-sm);
}

@media(max-width: 1140px) {
  .home .elementor-2 .elementor-element-06b5191 .team__heading {
    margin: 0;
  }
  .home .elementor-2 .elementor-element-06b5191 .team__heading,
  .home .elementor-2 .elementor-element-06b5191 .elementor-widget-text-editor {
    padding-left: 18px !important;
    padding-right: 18px !important;
  }
}

@media(max-width: 560px) {
  .home .elementor-2 .elementor-element-06b5191 .team__heading,
  .home .elementor-2 .elementor-element-06b5191 .elementor-widget-text-editor {
    padding-left: var(--space-md) !important;
    padding-right: var(--space-md) !important;
  }
  .home .elementor-2 .elementor-element-06b5191 .team__heading .elementor-heading-title,
  .home .elementor-2 .elementor-element-06b5191 .team__heading h4 {
    font-size: var(--font-size-h4);
  }
}

.home .elementor-2 .elementor-element-7425444 .elementor-element-935e5ca {
  --info-card-gutter: var(--space-xs);
}

.home .elementor-2 .elementor-element-7425444 .elementor-element-935e5ca .elementor-container {
  margin-left: auto;
  margin-right: auto;
}

.home .elementor-2 .elementor-element-7425444 .elementor-element-935e5ca .elementor-column {
  box-sizing: border-box;
  padding-left: var(--info-card-gutter);
  padding-right: var(--info-card-gutter);
}

.home .elementor-2 .elementor-element-7425444 .elementor-element-935e5ca .elementor-column>.elementor-element-populated {
  gap: 0;
  padding: 0;
  background: var(--color-transparent);
  border: 0;
  border-radius: 0;
  box-shadow: none;
  overflow: visible;
}

.home .elementor-2 .elementor-element-7425444 .elementor-element-935e5ca .elementor-column>.elementor-element-populated>.elementor-widget {
  margin-bottom: 0 !important;
}

.home .elementor-2 .elementor-element-7425444 .elementor-element-935e5ca .elementor-widget-image,
.home .elementor-2 .elementor-element-7425444 .elementor-element-935e5ca .elementor-widget-heading,
.home .elementor-2 .elementor-element-7425444 .elementor-element-935e5ca .elementor-widget-text-editor,
.home .elementor-2 .elementor-element-7425444 .elementor-element-935e5ca .elementor-widget-button {
  width: 100%;
}

.home .elementor-2 .elementor-element-7425444 .elementor-element-935e5ca .elementor-widget-image {
  order: 1;
  margin: 0 !important;
}

.home .elementor-2 .elementor-element-7425444 .elementor-element-935e5ca .elementor-widget-heading {
  order: 2;
  margin: 0 !important;
  padding: 16px 0 0 !important;
}

.home .elementor-2 .elementor-element-7425444 .elementor-element-935e5ca .elementor-widget-text-editor {
  order: 3;
  min-height: 0;
  padding: 10px 0 0 !important;
}

.home .elementor-2 .elementor-element-7425444 .elementor-element-935e5ca .elementor-widget-button {
  order: 4;
  margin-top: 0 !important;
  padding: 12px 0 0 !important;
}

.home .elementor-2 .elementor-element-7425444 .elementor-element-935e5ca .elementor-widget-image .elementor-widget-container {
  line-height: 0;
  overflow: hidden;
  background: var(--color-info-image-bg);
  cursor: pointer;
}

.home .elementor-2 .elementor-element-7425444 .elementor-element-935e5ca .elementor-widget-image .elementor-widget-container:hover img,
.home .elementor-2 .elementor-element-7425444 .elementor-element-935e5ca .elementor-widget-image .elementor-widget-container:focus-visible img {
  transform: scale(1.03);
  filter: saturate(1.04) contrast(1.02);
}

.home .elementor-2 .elementor-element-7425444 .elementor-element-935e5ca .elementor-widget-image img {
  display: block;
  width: 100%;
  aspect-ratio: 1.3/1;
  object-fit: cover;
  transition: transform var(--duration-filter) var(--ease-standard),filter var(--duration-filter) var(--ease-standard);
}

.home .elementor-2 .elementor-element-7425444 .elementor-element-935e5ca .elementor-widget-heading .elementor-heading-title,
.home .elementor-2 .elementor-element-7425444 .elementor-element-935e5ca .elementor-widget-heading h4 {
  font-family: var(--font-display);
  font-weight: 800;
  color: var(--color-text);
  margin: 0;
  font-size: clamp(1.35rem,1.7vw,1.52rem);
  line-height: 1.04;
  letter-spacing: var(--letter-spacing-tight-xl);
}

.home .elementor-2 .elementor-element-7425444 .elementor-element-935e5ca .elementor-widget-text-editor .elementor-widget-container,
.home .elementor-2 .elementor-element-7425444 .elementor-element-935e5ca .elementor-widget-text-editor p {
  color: var(--color-text-muted);
  font-size: var(--font-size-card);
  line-height: var(--line-height-compact);
  margin: 0;
}

.home .elementor-2 .elementor-element-7425444 .elementor-element-935e5ca .elementor-widget-button .elementor-button-wrapper {
  text-align: left !important;
}

.home .elementor-2 .elementor-element-7425444 .elementor-element-935e5ca .elementor-widget-button .elementor-button-link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2xs);
  padding: 0;
  border: 0;
  background: none !important;
  box-shadow: none;
  color: var(--color-text) !important;
  font-size: var(--font-size-xs);
  line-height: var(--line-height-default);
  font-weight: 700;
  letter-spacing: var(--letter-spacing-label);
  text-transform: uppercase;
  text-decoration: none;
}

.home .elementor-2 .elementor-element-7425444 .elementor-element-935e5ca .elementor-widget-button .elementor-button-link:hover,
.home .elementor-2 .elementor-element-7425444 .elementor-element-935e5ca .elementor-widget-button .elementor-button-link:focus {
  background: none !important;
  color: var(--color-primary-dark) !important;
  transform: none;
  text-decoration: underline;
  text-underline-offset: .18em;
  text-decoration-thickness: 1px;
}

.home .elementor-2 .elementor-element-7425444 .elementor-element-935e5ca .elementor-widget-button .elementor-button-content-wrapper {
  gap: var(--space-2xs);
}

.home .elementor-2 .elementor-element-7425444 .elementor-element-935e5ca .elementor-widget-button .elementor-button-content-wrapper::after {
  content: "";
  width: 7px;
  height: 7px;
  border-top: 1.5px solid currentColor;
  border-right: 1.5px solid currentColor;
  transform: rotate(45deg);
}

@media(max-width: 1140px) {
  .home .elementor-2 .elementor-element-7425444 .elementor-element-935e5ca .elementor-widget-heading,
  .home .elementor-2 .elementor-element-7425444 .elementor-element-935e5ca .elementor-widget-text-editor,
  .home .elementor-2 .elementor-element-7425444 .elementor-element-935e5ca .elementor-widget-button {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

@media(max-width: 560px) {
  .home .elementor-2 .elementor-element-7425444 .elementor-element-935e5ca {
    --info-card-gutter: var(--space-2xs);
  }
  .home .elementor-2 .elementor-element-7425444 .elementor-element-935e5ca .elementor-widget-heading,
  .home .elementor-2 .elementor-element-7425444 .elementor-element-935e5ca .elementor-widget-text-editor,
  .home .elementor-2 .elementor-element-7425444 .elementor-element-935e5ca .elementor-widget-button {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  .home .elementor-2 .elementor-element-7425444 .elementor-element-935e5ca .elementor-widget-heading .elementor-heading-title,
  .home .elementor-2 .elementor-element-7425444 .elementor-element-935e5ca .elementor-widget-heading h4 {
    font-size: clamp(1.15rem,6vw,1.35rem);
  }
}

.home .elementor-2 .elementor-element-0ba1f0a .elementor-element-74bb200 {
  padding-bottom: 32px;
}

.home .elementor-2 .elementor-element-0ba1f0a .elementor-element-615b6b2 {
  text-align: left !important;
}

.home .elementor-2 .elementor-element-0ba1f0a .elementor-element-615b6b2 p {
  max-width: 640px;
  margin-top: var(--space-stack-sm) !important;
}

.home .elementor-2 .elementor-element-0ba1f0a .elementor-element-c051cf7 .elementor-container,
.home .elementor-2 .elementor-element-0ba1f0a .elementor-element-4fe4cae .elementor-container {
  max-width: none;
}

.home .elementor-2 .elementor-element-0ba1f0a .elementor-element-c051cf7 .elementor-column>.elementor-element-populated,
.home .elementor-2 .elementor-element-0ba1f0a .elementor-element-4fe4cae .elementor-column>.elementor-element-populated {
  height: 100%;
  margin: 0;
}

.home .elementor-2 .elementor-element-0ba1f0a .elementor-element-c051cf7 .elementor-widget-icon-box,
.home .elementor-2 .elementor-element-0ba1f0a .elementor-element-4fe4cae .elementor-widget-icon-box {
  height: 100%;
  margin-bottom: 0 !important;
}

.home .elementor-2 .elementor-element-0ba1f0a .elementor-element-c051cf7 .elementor-widget-icon-box>.elementor-widget-container,
.home .elementor-2 .elementor-element-0ba1f0a .elementor-element-4fe4cae .elementor-widget-icon-box>.elementor-widget-container {
  height: 100%;
}

.home .elementor-2 .elementor-element-0ba1f0a .elementor-element-c051cf7 .elementor-icon-box-wrapper,
.home .elementor-2 .elementor-element-0ba1f0a .elementor-element-4fe4cae .elementor-icon-box-wrapper {
  background: var(--color-home-card-surface);
  border-radius: var(--radius-xl);
  padding: 36px 32px;
  min-height: 160px;
  height: 100%;
  display: grid;
  grid-template-columns: var(--layout-icon-box-sm) minmax(0, 1fr);
  gap: var(--space-md);
  align-items: start;
  transition: var(--transition-surface);
}

.home .elementor-2 .elementor-element-0ba1f0a .elementor-element-c051cf7 .elementor-icon-box-wrapper:hover,
.home .elementor-2 .elementor-element-0ba1f0a .elementor-element-4fe4cae .elementor-icon-box-wrapper:hover {
  background: var(--color-home-card-hover);
}

.home .elementor-2 .elementor-element-0ba1f0a .elementor-element-c051cf7 .elementor-icon-box-icon,
.home .elementor-2 .elementor-element-0ba1f0a .elementor-element-4fe4cae .elementor-icon-box-icon {
  margin-top: 0;
}

.home .elementor-2 .elementor-element-0ba1f0a .elementor-element-c051cf7 .elementor-icon-box-icon .elementor-icon,
.home .elementor-2 .elementor-element-0ba1f0a .elementor-element-4fe4cae .elementor-icon-box-icon .elementor-icon {
  width: var(--layout-icon-box);
  height: var(--layout-icon-box);
  border-radius: var(--radius-lg);
  background: var(--color-surface);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--shadow-icon-soft);
}

.home .elementor-2 .elementor-element-0ba1f0a .elementor-element-c051cf7 .elementor-icon-box-icon .elementor-icon i,
.home .elementor-2 .elementor-element-0ba1f0a .elementor-element-c051cf7 .elementor-icon-box-icon .elementor-icon svg,
.home .elementor-2 .elementor-element-0ba1f0a .elementor-element-4fe4cae .elementor-icon-box-icon .elementor-icon i,
.home .elementor-2 .elementor-element-0ba1f0a .elementor-element-4fe4cae .elementor-icon-box-icon .elementor-icon svg {
  color: var(--color-primary);
  font-size: 1.15rem;
}

.home .elementor-2 .elementor-element-0ba1f0a .elementor-element-c051cf7 .elementor-icon-box-icon .elementor-icon svg,
.home .elementor-2 .elementor-element-0ba1f0a .elementor-element-4fe4cae .elementor-icon-box-icon .elementor-icon svg {
  width: 72%;
  height: 72%;
  display: block;
  max-width: none;
}

.home .elementor-2 .elementor-element-0ba1f0a .elementor-element-c051cf7 .elementor-icon-box-content,
.home .elementor-2 .elementor-element-0ba1f0a .elementor-element-4fe4cae .elementor-icon-box-content {
  align-self: start;
  min-width: 0;
}

.home .elementor-2 .elementor-element-0ba1f0a .elementor-element-c051cf7 .elementor-icon-box-title,
.home .elementor-2 .elementor-element-0ba1f0a .elementor-element-c051cf7 .elementor-icon-box-title a,
.home .elementor-2 .elementor-element-0ba1f0a .elementor-element-4fe4cae .elementor-icon-box-title,
.home .elementor-2 .elementor-element-0ba1f0a .elementor-element-4fe4cae .elementor-icon-box-title a {
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--color-text);
  margin: 0;
  font-size: var(--font-size-h4);
  line-height: var(--line-height-default);
  letter-spacing: var(--letter-spacing-tight-xs);
  color: var(--color-text);
  margin: 0;
  font-size: clamp(1.04rem,0.9rem + 0.35vw,1.12rem);
  line-height: var(--line-height-heading-sm);
  letter-spacing: -0.035em;
  hyphens: none;
  overflow-wrap: normal;
  word-break: normal;
}

.home .elementor-2 .elementor-element-0ba1f0a .elementor-element-c051cf7 .elementor-icon-box-description,
.home .elementor-2 .elementor-element-0ba1f0a .elementor-element-4fe4cae .elementor-icon-box-description {
  font-size: var(--font-size-sm);
  line-height: var(--line-height-default);
  color: var(--color-text-muted);
  margin-top: 10px;
  max-width: 24ch;
  hyphens: none;
  overflow-wrap: normal;
  word-break: normal;
}

.home .elementor-2 .elementor-element-0ba1f0a .elementor-element-c051cf7 {
  margin-bottom: 24px;
}

.home .elementor-2 .elementor-element-0ba1f0a .elementor-element-4fe4cae {
  padding-bottom: 96px;
}

@media(max-width: 1140px) {
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-c051cf7 .elementor-icon-box-wrapper,
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-4fe4cae .elementor-icon-box-wrapper {
    padding: 30px 24px;
  }
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-c051cf7 .elementor-icon-box-description,
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-4fe4cae .elementor-icon-box-description {
    max-width: none;
  }
}

@media(max-width: 767px) {
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-c051cf7 {
    margin-top: 0;
    margin-bottom: 0;
  }
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-4fe4cae {
    padding-bottom: 72px;
  }
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-c051cf7 .elementor-column>.elementor-element-populated,
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-4fe4cae .elementor-column>.elementor-element-populated {
    margin-bottom: 24px;
  }
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-c051cf7 .elementor-icon-box-wrapper,
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-4fe4cae .elementor-icon-box-wrapper {
    padding: 24px 20px;
    grid-template-columns: var(--layout-icon-box-sm) 1fr;
    gap: var(--space-md);
  }
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-c051cf7 .elementor-icon-box-icon .elementor-icon,
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-4fe4cae .elementor-icon-box-icon .elementor-icon {
    width: var(--layout-icon-box-sm);
    height: var(--layout-icon-box-sm);
    border-radius: var(--radius-icon-sm);
  }
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-c051cf7 .elementor-icon-box-title,
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-c051cf7 .elementor-icon-box-title a,
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-4fe4cae .elementor-icon-box-title,
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-4fe4cae .elementor-icon-box-title a {
    font-size: 1.04rem;
  }
}

.home .elementor-2 .elementor-element-0ba1f0a .elementor-element-a043bae.elementor-widget-icon-box .elementor-icon-box-wrapper,
.home .elementor-2 .elementor-element-0ba1f0a .elementor-element-a839c0c.elementor-widget-icon-box .elementor-icon-box-wrapper,
.home .elementor-2 .elementor-element-0ba1f0a .elementor-element-d9cb8f6.elementor-widget-icon-box .elementor-icon-box-wrapper,
.home .elementor-2 .elementor-element-0ba1f0a .elementor-element-341314a.elementor-widget-icon-box .elementor-icon-box-wrapper,
.home .elementor-2 .elementor-element-0ba1f0a .elementor-element-2b26fa8.elementor-widget-icon-box .elementor-icon-box-wrapper,
.home .elementor-2 .elementor-element-0ba1f0a .elementor-element-3fe5a6e.elementor-widget-icon-box .elementor-icon-box-wrapper {
  cursor: pointer;
}

.entry-content :is(h1,h2,h3,h4,h5,h6,p),
.entry-content :is(h1,h2,h3,h4,h5,h6) a,
.page-template-default .site-content :is(h1,h2,h3,h4,h5,h6,p),
.page-template-default .site-content :is(h1,h2,h3,h4,h5,h6) a,
body .elementor .elementor-widget-icon-box :is(.elementor-icon-box-title,.elementor-icon-box-title a,.elementor-icon-box-description),
body .elementor .elementor-widget-heading .elementor-heading-title,
body .elementor .elementor-widget-text-editor :is(h1,h2,h3,h4,h5,h6,p) {
  -webkit-hyphens: none !important;
  -ms-hyphens: none !important;
  hyphens: none !important;
  overflow-wrap: normal !important;
  word-break: keep-all !important;
  word-wrap: normal !important;
}

@media(max-width: 1024px) {
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-a043bae.elementor-widget-icon-box .elementor-icon-box-wrapper,
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-a839c0c.elementor-widget-icon-box .elementor-icon-box-wrapper,
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-d9cb8f6.elementor-widget-icon-box .elementor-icon-box-wrapper,
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-341314a.elementor-widget-icon-box .elementor-icon-box-wrapper,
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-2b26fa8.elementor-widget-icon-box .elementor-icon-box-wrapper,
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-3fe5a6e.elementor-widget-icon-box .elementor-icon-box-wrapper {
    grid-template-columns: 1fr;
    gap: 12px;
    text-align: left;
  }
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-a043bae.elementor-widget-icon-box .elementor-icon-box-icon,
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-a839c0c.elementor-widget-icon-box .elementor-icon-box-icon,
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-d9cb8f6.elementor-widget-icon-box .elementor-icon-box-icon,
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-341314a.elementor-widget-icon-box .elementor-icon-box-icon,
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-2b26fa8.elementor-widget-icon-box .elementor-icon-box-icon,
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-3fe5a6e.elementor-widget-icon-box .elementor-icon-box-icon {
    justify-self: start;
  }
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-a043bae.elementor-widget-icon-box .elementor-icon-box-content,
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-a839c0c.elementor-widget-icon-box .elementor-icon-box-content,
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-d9cb8f6.elementor-widget-icon-box .elementor-icon-box-content,
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-341314a.elementor-widget-icon-box .elementor-icon-box-content,
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-2b26fa8.elementor-widget-icon-box .elementor-icon-box-content,
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-3fe5a6e.elementor-widget-icon-box .elementor-icon-box-content {
    text-align: left;
  }
}

@media(max-width: 767px) {
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-a043bae.elementor-widget-icon-box .elementor-icon-box-wrapper,
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-a839c0c.elementor-widget-icon-box .elementor-icon-box-wrapper,
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-d9cb8f6.elementor-widget-icon-box .elementor-icon-box-wrapper,
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-341314a.elementor-widget-icon-box .elementor-icon-box-wrapper,
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-2b26fa8.elementor-widget-icon-box .elementor-icon-box-wrapper,
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-3fe5a6e.elementor-widget-icon-box .elementor-icon-box-wrapper {
    grid-template-columns: 1fr;
    text-align: center;
  }
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-a043bae.elementor-widget-icon-box .elementor-icon-box-icon,
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-a839c0c.elementor-widget-icon-box .elementor-icon-box-icon,
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-d9cb8f6.elementor-widget-icon-box .elementor-icon-box-icon,
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-341314a.elementor-widget-icon-box .elementor-icon-box-icon,
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-2b26fa8.elementor-widget-icon-box .elementor-icon-box-icon,
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-3fe5a6e.elementor-widget-icon-box .elementor-icon-box-icon {
    justify-self: center;
  }
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-a043bae.elementor-widget-icon-box .elementor-icon-box-content,
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-a839c0c.elementor-widget-icon-box .elementor-icon-box-content,
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-d9cb8f6.elementor-widget-icon-box .elementor-icon-box-content,
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-341314a.elementor-widget-icon-box .elementor-icon-box-content,
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-2b26fa8.elementor-widget-icon-box .elementor-icon-box-content,
  .home .elementor-2 .elementor-element-0ba1f0a .elementor-element-3fe5a6e.elementor-widget-icon-box .elementor-icon-box-content {
    text-align: center;
  }
}


/* ==========================================================================
   Happy Addons / Hello Elementor widgets
   ========================================================================== */

.ha-card--left img {
  border-radius: var(--radius-md) 0 0 var(--radius-md);
}

.ha-card--right img {
  border-radius: 0 var(--radius-md) var(--radius-md) 0;
}

.has-link .ha-btn {
  border: none !important;
  padding: 0 !important;
  text-transform: none !important;
  font-size: var(--font-size-sm);
  line-height: var(--line-height-default);
  color: var(--color-primary) !important;
}

.has-link:hover .ha-btn {
  background: none !important;
  color: var(--color-text);
  border: none !important;
}

.has-link .ha-btn:hover {
  border: none !important;
  color: var(--color-text);
}

.ha-card {
  flex-grow: 1 !important;
  display: flex !important;
  flex-direction: column !important;
  background: var(--color-surface) !important;
}

[data-ha-element-link].ha-card {
  background: var(--color-transparent) !important;
}

.ha-infobox .ha-infobox-body {
  text-align: left;
}

.ha-infobox .ha-infobox-title {
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--color-text);
  margin: 0;
  font-size: var(--font-size-h3);
  line-height: var(--line-height-heading-md);
  letter-spacing: var(--letter-spacing-tight-sm);
  font-weight: 500;
  color: var(--color-text);
  margin-top: 0 !important;
}

.ha-infobox .ha-infobox-text p {
  font-size: var(--font-size-sm);
  line-height: var(--line-height-default);
  color: var(--color-text-soft);
}

.ha-infobox .ha-btn.ha-btn--link {
  display: inline-flex;
  align-self: flex-start;
  justify-content: flex-start;
  margin-left: 0;
  text-align: left;
}

.ha-infobox .ha-btn:hover {
  color: var(--color-text) !important;
}

body .ha-member .ha-member-bio p {
  font-size: var(--font-size-sm);
  line-height: var(--line-height-default);
}

body .ha-justified-gallery .ha-justified-gallery-wrapper .ha-justified-gallery-item,
body .ha-justified-gallery .ha-justified-gallery-wrapper .ha-justified-gallery-item img {
  border-radius: var(--radius-sm);
}

body .ha-testimonial__reviewer-name {
  font-weight: normal;
  color: var(--color-primary);
}

body .ha-testimonial__content {
  margin-top: 2.5em;
}

body .ha-testimonial__content::before {
  position: absolute;
  content: "“";
  font-family: var(--font-display);
  font-weight: 800;
  color: var(--color-text);
  margin: 0;
  font-size: clamp(3.5rem,6vw,5.5rem);
  line-height: .95;
  letter-spacing: -0.06em;
  top: .1em;
  color: var(--color-primary);
}


/* ==========================================================================
   Newsletter banner
   ========================================================================== */

.banner-newsletter {
  width: min(var(--layout-banner),100% - var(--layout-container-gutter));
  max-width: var(--layout-banner);
  margin: 0 auto;
  padding: 56px 24px 58px;
  background: var(--color-surface-tint) !important;
  border: var(--border-width-thin) solid var(--color-line);
  text-align: center;
  overflow: hidden;
}

.banner-newsletter::before,
.banner-newsletter::after {
  display: none;
}

.banner__subhead {
  font-family: var(--font-body);
  font-size: var(--font-size-body);
  line-height: var(--line-height-body);
  color: var(--color-text);
  max-width: var(--layout-banner-subhead);
  margin: 12px auto 0;
  color: var(--color-text-muted);
  text-align: center;
}

.banner__button {
  margin-top: 28px;
}

@media(max-width: 767px) {
  .banner-newsletter {
    width: min(var(--layout-banner),100% - var(--layout-container-gutter-sm));
    padding: 40px 18px 42px;
  }
  body .elementor .elementor-section.banner-newsletter.elementor-section {
    width: min(var(--layout-banner),100% - var(--layout-container-gutter-sm));
    padding: 40px 18px 42px !important;
  }
  .banner__subhead {
    margin-top: 10px;
    font-size: var(--font-size-card);
  }
  body .elementor .banner-newsletter .banner__subhead,
  body .elementor .banner-newsletter .banner__subhead .elementor-widget-container,
  body .elementor .banner-newsletter .banner__subhead .elementor-widget-container p {
    font-size: var(--font-size-card);
  }
}


/* ==========================================================================
   Solutions cards
   ========================================================================== */

.loesungen-intro p {
  font-family: var(--font-body);
  font-size: var(--font-size-body);
  line-height: var(--line-height-body);
  color: var(--color-text);
  color: var(--color-text-muted);
  max-width: 56ch;
  margin-top: var(--space-stack-sm);
}


/* ==========================================================================
   Team grid
   ========================================================================== */

.partnerlogos {
  margin-top: 6rem;
  border-top: var(--border-width-thin) solid var(--color-line);
  padding-bottom: var(--space-section);
  padding-top: var(--space-section);
  background: var(--color-surface);
}

.partnerlogos {
  padding: var(--space-lg);
}

.team-container+.team-container {
  margin-top: 20px !important;
}

.team-container .team__item {
  flex: 1 0 0%;
  min-width: 0;
}


/* ==========================================================================
   Utilities & helpers
   ========================================================================== */

.caption {
  font-size: var(--font-size-sm);
  line-height: var(--line-height-default);
}

.mainheading {
  position: relative;
  text-align: left;
  margin-bottom: var(--space-stack);
}

.mainheading:before {
  display: none;
}

.mainheading h2 {
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--color-text);
  margin: 0;
  font-size: var(--font-size-h2);
  line-height: var(--line-height-heading-sm);
  letter-spacing: var(--letter-spacing-tight-md);
  background: none;
  display: block;
  margin: 0;
  padding: 0 !important;
  text-align: left;
  z-index: var(--z-header);
}

h2.hr {
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--color-text);
  margin: 0;
  font-size: var(--font-size-h3);
  line-height: var(--line-height-heading-md);
  letter-spacing: var(--letter-spacing-tight-sm);
  width: 100%;
  text-align: center;
  border-bottom: var(--border-width-strong) solid var(--color-primary-dark);
  line-height: .1em !important;
  margin-bottom: 4rem !important;
}

h2.hr>span {
  background: var(--color-page);
  vertical-align: middle;
  padding: 0 1em;
}

.has-hr {
  border-bottom: var(--border-width-medium) solid var(--color-primary-dark);
  padding-bottom: .5em;
}

@media only screen and (min-width: 768px) {
  .has-hr {
    margin-bottom: var(--space-section) !important;
  }
}

.p-side {
  margin-left: var(--space-side-mobile);
  margin-right: var(--space-side-mobile);
}

@media only screen and (min-width: 768px) {
  .p-side {
    margin-left: var(--space-side-desktop);
    margin-right: var(--space-side-desktop);
  }
}
