/*
Theme Name: EIH Elementor Child Theme
Theme URI: https://maja.cloud/elemntor-theme-eih/
Description: Hello Elementor Child theme fuer Hello Elementor, created by Sascha with AI
Author: Sascha Arlt
Author URI: https://maja.cloud/
Template: hello-elementor
Version: 0.1.5
Requires at least: 6.0
Tested up to: 6.9.4
Requires PHP: 7.4
Text Domain: hello-elementor-child
Domain Path: /languages
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: custom-colors, custom-menu, custom-logo, editor-style, featured-images, full-width-template, rtl-language-support, threaded-comments, translation-ready, elementor
*/

/* =========================================================
   EIH - Energieberater/in Hannover
   Corporate Identity: Seiten 1-26 der gelieferten CI.
   Elementor + Gutenberg: dieselben Design-Tokens und Selektoren.
   ========================================================= */

:root {
  /* Corporate Identity - Farben */
  --eih-dark: #292929;
  --eih-black: #171717;
  --eih-text: #292929;
  --eih-text-muted: #5f675b;
  --eih-sage: #a2b191;
  --eih-sage-light: #c6e1a7;
  --eih-green: #85c917;
  --eih-green-dark: #6da912;
  --eih-magenta: #bd3488;
  --eih-magenta-dark: #98256a;
  --eih-rose: #dd94aa;
  --eih-pink: #ffadc6;
  --eih-pink-soft: #ffd7e4;
  --eih-muted: #ededed;
  --eih-soft: #f5f5f5;
  --eih-light: #efefef;
  --eih-white: #ffffff;

  /* Typografie */
  --eih-font-body: "Open Sauce", "Open Sauce One", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --eih-font-heading: "Open Sauce", "Open Sauce One", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --eih-font-display: "Akzidenz-Grotesk", "Akzidenz Grotesk", "AkzidenzGroteskPro", "Arial Narrow", "Roboto Condensed", Impact, sans-serif;
  --eih-line-height: 1.65;
  --eih-heading-line-height: 1.08;
  --eih-letter-tight: -0.018em;
  --eih-letter-wide: 0.025em;

  /* Layout */
  --eih-content-width: 1120px;
  --eih-narrow-width: 820px;
  --eih-wide-width: 1280px;
  --eih-space-2xs: 0.35rem;
  --eih-space-xs: 0.55rem;
  --eih-space-sm: 0.9rem;
  --eih-space-md: 1.4rem;
  --eih-space-lg: 2.25rem;
  --eih-space-xl: 3.75rem;
  --eih-space-2xl: 6rem;

  /* Form, Schatten, Fokus */
  --eih-radius-sm: 0.7rem;
  --eih-radius: 1.25rem;
  --eih-radius-lg: 2rem;
  --eih-radius-xl: 3rem;
  --eih-radius-pill: 999px;
  --eih-border-green: 1.5px solid var(--eih-green);
  --eih-border-soft: 1px solid rgba(41, 41, 41, 0.1);
  --eih-shadow-xs: 0 1px 2px rgba(23, 23, 23, 0.06);
  --eih-shadow-sm: 0 6px 18px rgba(23, 23, 23, 0.08);
  --eih-shadow-md: 0 14px 36px rgba(23, 23, 23, 0.12);
  --eih-shadow-lg: 0 24px 64px rgba(23, 23, 23, 0.16);
  --eih-focus-ring: 0 0 0 3px rgba(133, 201, 23, 0.28);
  --eih-transition: 180ms ease;

  /* Kompatibilitaet zum SchulungsCSS */
  --oc-orange: var(--eih-green);
  --oc-orange-dark: var(--eih-green-dark);
  --oc-orange-light: rgba(198, 225, 167, 0.35);
  --oc-blue: var(--eih-magenta);
  --oc-blue-dark: var(--eih-magenta-dark);
  --oc-blue-light: rgba(255, 173, 198, 0.32);
  --oc-anthrazit: var(--eih-dark);
  --oc-white: var(--eih-white);
  --oc-gray-light: var(--eih-light);
  --oc-gray: var(--eih-text-muted);
  --oc-gray-dark: var(--eih-dark);
  --oc-border-orange: rgba(133, 201, 23, 0.45);
  --oc-signal-red: #b91c1c;
  --oc-font-primary: var(--eih-font-body);
  --oc-line-height: var(--eih-line-height);
  --oc-letter-spacing: var(--eih-letter-wide);
  --oc-space-xs: var(--eih-space-xs);
  --oc-space-sm: var(--eih-space-sm);
  --oc-space-md: var(--eih-space-md);
  --oc-space-lg: var(--eih-space-lg);
  --oc-space-xl: var(--eih-space-xl);
  --oc-radius: var(--eih-radius-pill);
  --oc-radius-lg: var(--eih-radius-lg);
  --oc-shadow-sm: var(--eih-shadow-sm);
  --oc-shadow-md: var(--eih-shadow-md);
  --oc-shadow-lg: var(--eih-shadow-lg);
  --oc-divider-orange: var(--eih-border-green);
  --oc-divider-blue: 1.5px solid var(--eih-magenta);
  --oc-divider-light: var(--eih-border-soft);
}

/* =========================================================
   Reset und Basis
   ========================================================= */

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

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

body,
.editor-styles-wrapper {
  background: var(--eih-soft);
  color: var(--eih-text);
  font-family: var(--eih-font-body);
  font-size: clamp(1rem, 0.18vw + 0.95rem, 1.09rem);
  font-weight: 400;
  letter-spacing: 0;
  line-height: var(--eih-line-height);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body {
  margin: 0;
  overflow-x: hidden;
}

img,
picture,
video,
canvas,
svg {
  display: block;
  height: auto;
  max-width: 100%;
}

::selection {
  background: var(--eih-pink);
  color: var(--eih-dark);
}

:focus-visible {
  outline: none;
  box-shadow: var(--eih-focus-ring);
}

/* =========================================================
   Typografie - Elementor und Gutenberg
   ========================================================= */

/* Alle Heading Elemente mit derselben Zeilenhöhe (line-height) */
h1,
h2,
h3,
h4,
h5,
h6,
.entry-title,
.page-title,
.wp-block-heading,
.elementor-widget-heading .elementor-heading-title,
.editor-styles-wrapper h1,
.editor-styles-wrapper h2,
.editor-styles-wrapper h3,
.editor-styles-wrapper h4,
.editor-styles-wrapper h5,
.editor-styles-wrapper h6 {
  color: var(--eih-dark);
  font-family: var(--eih-font-heading);
  font-weight: 800;
  letter-spacing: var(--eih-letter-tight);
  line-height: var(--eih-heading-line-height) !important;
  margin-top: 0;
  margin-bottom: 0.72em;
  text-transform: none !important;
  text-wrap: balance;
  overflow-wrap: anywhere;
}

/* Schriftgröße für Überschrift 1 und 2 definieren */
h1,
.eih-h1,
.entry-title,
.page-title,
.wp-block-post-title,
.elementor-widget-theme-post-title .elementor-heading-title,
.elementor-widget-heading h1.elementor-heading-title,
.editor-styles-wrapper h1 {
  font-family: var(--eih-font-display);
  font-size: clamp(1.175rem, 2.1vw, 2.275rem);
  font-weight: 900;
  letter-spacing: -0.022em;
  max-width: 100%;
  text-wrap: normal;
}

h2,
.eih-h2,
.elementor-widget-heading h2.elementor-heading-title,
.editor-styles-wrapper h2 {
  font-family: var(--eih-font-display);
  font-size: clamp(0.925rem, 1.5vw, 1.625rem);
  font-weight: 900;
  letter-spacing: -0.02em;
  max-width: 100%;
  text-wrap: normal;
}

h3,
.eih-h3,
.elementor-widget-heading h3.elementor-heading-title,
.editor-styles-wrapper h3 {
  font-size: clamp(0.575rem, 1.25vw, 0.75rem);
  font-weight: 800;
}

h4,
.eih-h4,
.editor-styles-wrapper h4 {
  font-size: 0.5625rem;
  max-width: 100%;
}

h5,
.eih-h5,
.editor-styles-wrapper h5 {
  font-size: 0.5rem;
}

h6,
.eih-h6,
.editor-styles-wrapper h6 {
  color: var(--eih-text-muted);
  font-size: 0.4375rem;
  letter-spacing: 0.08em;
  text-transform: uppercase !important;
}

p,
.elementor-widget-text-editor,
.elementor-widget-text-editor p,
.wp-block-paragraph,
.editor-styles-wrapper p {
  margin-top: 0;
  margin-bottom: 1.1rem;
}

p:last-child,
.elementor-widget-text-editor p:last-child,
.wp-block-paragraph:last-child {
  margin-bottom: 0;
}

.eih-kicker,
.oc-claim,
.site-description,
.wp-block-heading.is-style-eih-kicker,
.elementor-widget-heading .eih-kicker {
  color: var(--eih-green-dark);
  display: inline-block;
  font-family: var(--eih-font-heading);
  font-size: clamp(0.9rem, 0.75vw, 1.08rem);
  font-weight: 900;
  letter-spacing: 0.035em;
  line-height: 1.1;
  margin-bottom: 0.7rem;
  text-transform: uppercase !important;
}

.eih-title-pink,
.eih-accent-pink,
.has-eih-pink-color,
.has-pink-color {
  color: var(--eih-pink) !important;
}

.eih-title-green,
.eih-accent-green,
.has-eih-green-color,
.has-green-color {
  color: var(--eih-green) !important;
}

.eih-title-sage,
.has-eih-sage-color,
.has-sage-color {
  color: var(--eih-sage) !important;
}

small,
.eih-small,
.wp-block-post-date,
.wp-block-post-terms,
.elementor-post__meta-data {
  color: var(--eih-text-muted);
  font-size: 0.86rem;
}

strong,
b {
  font-weight: 800;
}

/* =========================================================
   Links
   ========================================================= */

a,
.editor-styles-wrapper a,
.elementor a {
  color: var(--eih-magenta);
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.16em;
  transition: color var(--eih-transition), text-decoration-color var(--eih-transition);
}

a:hover,
a:focus,
.editor-styles-wrapper a:hover,
.elementor a:hover {
  color: var(--eih-magenta-dark);
  text-decoration-color: currentColor;
}

/* =========================================================
   Layout-Container
   ========================================================= */

.site-main,
#content,
.elementor-location-single,
.elementor-location-archive,
.editor-styles-wrapper {
  background: var(--eih-soft);
}

.site-main > .page-content,
.site-main > .entry-content,
.wp-site-blocks,
.eih-wrap,
.elementor-section.elementor-section-boxed > .elementor-container,
.e-con.e-con-boxed > .e-con-inner {
  max-width: var(--eih-wide-width);
}

.entry-content > *:not(.alignwide):not(.alignfull),
.post-content > *:not(.alignwide):not(.alignfull),
.editor-styles-wrapper .wp-block:not([data-align="wide"]):not([data-align="full"]),
.wp-block-group:not(.alignwide):not(.alignfull) > .wp-block-group__inner-container {
  max-width: var(--eih-content-width);
}

.entry-content > *,
.post-content > * {
  margin-left: auto;
  margin-right: auto;
}

.entry-content > p,
.entry-content > ul,
.entry-content > ol,
.entry-content > blockquote,
.entry-content > .wp-block-quote,
.entry-content > .wp-block-table,
.post-content > p,
.post-content > ul,
.post-content > ol,
.post-content > blockquote {
  max-width: var(--eih-content-width);
}

.alignwide,
.editor-styles-wrapper .alignwide {
  max-width: var(--eih-wide-width) !important;
}

.alignfull,
.editor-styles-wrapper .alignfull {
  max-width: none !important;
}

.eih-section,
.wp-block-group.eih-section,
.elementor-section.eih-section,
.e-con.eih-section {
  padding-top: clamp(3rem, 7vw, var(--eih-space-2xl));
  padding-bottom: clamp(3rem, 7vw, var(--eih-space-2xl));
}

.eih-section-muted,
.wp-block-group.eih-section-muted,
.elementor-section.eih-section-muted,
.e-con.eih-section-muted {
  background: var(--eih-light);
}

.eih-section-sage,
.wp-block-group.eih-section-sage,
.elementor-section.eih-section-sage,
.e-con.eih-section-sage {
  background: var(--eih-sage);
}

.eih-section-dark,
.wp-block-group.eih-section-dark,
.elementor-section.eih-section-dark,
.e-con.eih-section-dark {
  background: var(--eih-black);
  color: var(--eih-white);
}

.eih-section-dark h1,
.eih-section-dark h2,
.eih-section-dark h3,
.eih-section-dark p,
.eih-section-dark .elementor-heading-title {
  color: var(--eih-white);
}

/* =========================================================
   Header und Navigation - Hello Elementor, Elementor Header, Gutenberg
   ========================================================= */

.site-header,
header.elementor-location-header,
.elementor-location-header,
.eih-site-header,
.wp-block-template-part.eih-site-header {
  background-color: var(--eih-soft) !important;
  border-bottom: 1px solid rgba(23, 23, 23, 0.05);
  box-shadow: var(--eih-shadow-xs);
  position: sticky;
  top: 0;
  z-index: 1000;
}

.admin-bar .site-header,
.admin-bar header.elementor-location-header,
.admin-bar .elementor-location-header,
.admin-bar .eih-site-header {
  top: 32px;
}

.site-header .site-branding img,
.custom-logo,
.elementor-widget-site-logo img,
.wp-block-site-logo img {
  max-height: 58px;
  width: auto;
}

.main-navigation,
.elementor-nav-menu,
.wp-block-navigation,
.eih-nav {
  font-family: var(--eih-font-body);
  font-size: clamp(0.86rem, 0.22vw + 0.82rem, 0.98rem);
  font-weight: 700;
}

.main-navigation ul,
.elementor-nav-menu,
.wp-block-navigation__container,
.eih-nav ul {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem clamp(0.75rem, 1.5vw, 1.8rem);
  justify-content: center;
}

.main-navigation a,
.elementor-nav-menu a,
.elementor-nav-menu .elementor-item,
.wp-block-navigation a,
.wp-block-navigation-item__content,
.eih-nav a {
  align-items: center;
  background: var(--eih-soft);
  border: var(--eih-border-green);
  border-radius: var(--eih-radius-pill);
  color: var(--eih-green-dark) !important;
  display: inline-flex;
  justify-content: center;
  line-height: 1;
  min-height: 2.2rem;
  min-width: clamp(6.6rem, 10vw, 10rem);
  padding: 0.58rem 1.25rem !important;
  text-decoration: none !important;
  text-transform: none !important;
  transition: background var(--eih-transition), border-color var(--eih-transition), color var(--eih-transition), box-shadow var(--eih-transition), transform var(--eih-transition);
}

.main-navigation a:hover,
.main-navigation a:focus,
.elementor-nav-menu a:hover,
.elementor-nav-menu a:focus,
.elementor-nav-menu .elementor-item:hover,
.elementor-nav-menu .elementor-item:focus,
.wp-block-navigation a:hover,
.wp-block-navigation a:focus,
.eih-nav a:hover,
.eih-nav a:focus,
.main-navigation .current-menu-item > a,
.elementor-nav-menu .elementor-item.elementor-item-active,
.wp-block-navigation-item.current-menu-item > a {
  background: linear-gradient(105deg, rgba(133, 201, 23, 0.95), rgba(237, 237, 237, 0.55) 42%, rgba(245, 245, 245, 0.94));
  border-color: var(--eih-green);
  color: var(--eih-green-dark) !important;
  box-shadow: var(--eih-shadow-xs);
  transform: translateY(-1px);
}

.main-navigation .sub-menu,
.elementor-nav-menu .sub-menu,
.wp-block-navigation__submenu-container {
  background: var(--eih-white) !important;
  border: var(--eih-border-green) !important;
  border-radius: var(--eih-radius);
  box-shadow: var(--eih-shadow-md);
  padding: 0.55rem;
}

.main-navigation .sub-menu a,
.elementor-nav-menu .sub-menu a,
.wp-block-navigation__submenu-container a {
  border: 0;
  justify-content: flex-start;
  min-width: 0;
  padding: 0.75rem 0.95rem !important;
}

.elementor-menu-toggle,
.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close {
  background: var(--eih-soft) !important;
  border: var(--eih-border-green) !important;
  border-radius: var(--eih-radius-pill) !important;
  color: var(--eih-green-dark) !important;
}

/* =========================================================
   Buttons und CTAs - Elementor, Gutenberg, Formulare
   ========================================================= */

.elementor-button,
.elementor-button.elementor-button-link,
a.elementor-button,
.wp-block-button__link,
.wp-element-button,
button,
input[type="submit"],
input[type="button"],
input[type="reset"],
.oc-btn,
a.oc-btn,
.eih-btn,
a.eih-btn {
  align-items: center;
  appearance: none;
  background-color: var(--eih-green) !important;
  border: var(--eih-border-green) !important;
  border-radius: var(--eih-radius-pill) !important;
  box-shadow: none;
  color: var(--eih-white) !important;
  cursor: pointer;
  display: inline-flex;
  font-family: var(--eih-font-body);
  font-size: 0.95rem;
  font-weight: 800;
  gap: 0.45rem;
  justify-content: center;
  letter-spacing: 0.01em;
  line-height: 1.1;
  min-height: 2.75rem;
  padding: 0.78rem 1.55rem;
  text-align: center;
  text-decoration: none !important;
  text-transform: none !important;
  transition: background-color var(--eih-transition), border-color var(--eih-transition), color var(--eih-transition), transform var(--eih-transition), box-shadow var(--eih-transition);
}

.elementor-button:hover,
.elementor-button:focus,
a.elementor-button:hover,
a.elementor-button:focus,
.wp-block-button__link:hover,
.wp-block-button__link:focus,
.wp-element-button:hover,
.wp-element-button:focus,
button:hover,
button:focus,
input[type="submit"]:hover,
input[type="submit"]:focus,
input[type="button"]:hover,
input[type="button"]:focus,
.oc-btn:hover,
a.oc-btn:hover,
.eih-btn:hover,
a.eih-btn:hover {
  background-color: var(--eih-green-dark) !important;
  border-color: var(--eih-green-dark) !important;
  box-shadow: var(--eih-shadow-sm);
  color: var(--eih-white) !important;
  transform: translateY(-1px);
}

.elementor-button:active,
.wp-block-button__link:active,
button:active,
input[type="submit"]:active,
.oc-btn:active,
.eih-btn:active {
  box-shadow: var(--eih-shadow-xs);
  transform: translateY(0);
}

.wp-block-button.is-style-outline .wp-block-button__link,
.oc-btn-secondary,
a.oc-btn-secondary,
.eih-btn-outline,
a.eih-btn-outline {
  background: transparent !important;
  border: 1.5px solid currentColor !important;
  color: var(--eih-green-dark) !important;
}

.wp-block-button.is-style-outline .wp-block-button__link:hover,
.oc-btn-secondary:hover,
a.oc-btn-secondary:hover,
.eih-btn-outline:hover,
a.eih-btn-outline:hover {
  background: var(--eih-green) !important;
  border-color: var(--eih-green) !important;
  color: var(--eih-white) !important;
}

.eih-btn-pink,
a.eih-btn-pink,
.wp-block-button.is-style-eih-pink .wp-block-button__link {
  background: var(--eih-pink) !important;
  border-color: var(--eih-pink) !important;
  color: var(--eih-dark) !important;
}

.eih-btn-pink:hover,
a.eih-btn-pink:hover,
.wp-block-button.is-style-eih-pink .wp-block-button__link:hover {
  background: var(--eih-rose) !important;
  border-color: var(--eih-rose) !important;
  color: var(--eih-dark) !important;
}

/* =========================================================
   Hero-Bereiche
   ========================================================= */

.eih-hero,
.wp-block-cover.eih-hero,
.wp-block-group.eih-hero,
.elementor-section.eih-hero,
.e-con.eih-hero {
  background: var(--eih-sage);
  color: var(--eih-white);
  overflow: hidden;
  padding: clamp(3.25rem, 7vw, 7rem) clamp(1.25rem, 4vw, 4rem);
  position: relative;
}

.eih-hero h1,
.eih-hero h2,
.eih-hero .elementor-heading-title,
.eih-hero .wp-block-heading {
  color: var(--eih-pink);
  max-width: 16ch;
}

.eih-hero .eih-kicker,
.eih-hero .oc-claim,
.eih-hero .site-description {
  color: var(--eih-white);
}

.eih-hero p,
.eih-hero .elementor-widget-text-editor,
.eih-hero .wp-block-paragraph {
  color: rgba(255, 255, 255, 0.92);
}

.eih-hero img,
.eih-hero .wp-block-image img,
.eih-hero .elementor-widget-image img {
  border-radius: clamp(1.4rem, 3vw, 3rem);
  box-shadow: var(--eih-shadow-md);
  object-fit: cover;
}

.eih-hero .wp-block-columns,
.eih-hero .elementor-container,
.eih-hero.e-con > .e-con-inner {
  align-items: center;
  gap: clamp(1.8rem, 5vw, 5rem);
}

/* =========================================================
   Karten, Blog-Teaser und Inhalte-Hubs
   ========================================================= */

.eih-card,
.oc-card,
.wp-block-group.is-style-eih-card,
.wp-block-media-text.is-style-eih-card,
.wp-block-post,
.wp-block-latest-posts li,
.elementor-post,
.elementor-widget-container > .eih-card {
  background: var(--eih-light);
  border: 0;
  border-radius: var(--eih-radius-lg);
  box-shadow: none;
  color: var(--eih-text);
  overflow: hidden;
  padding: clamp(1rem, 2vw, 1.45rem);
  transition: transform var(--eih-transition), box-shadow var(--eih-transition), background var(--eih-transition);
}

.eih-card:hover,
.oc-card:hover,
.wp-block-group.is-style-eih-card:hover,
.wp-block-post:hover,
.wp-block-latest-posts li:hover,
.elementor-post:hover {
  box-shadow: var(--eih-shadow-sm);
  transform: translateY(-3px);
}

.eih-card-sage,
.wp-block-group.is-style-eih-card-sage,
.wp-block-post:nth-child(3n+2),
.elementor-post:nth-child(3n+2) {
  background: var(--eih-sage-light);
}

.eih-card-pink,
.wp-block-group.is-style-eih-card-pink,
.wp-block-post:nth-child(3n+1),
.elementor-post:nth-child(3n+1) {
  background: var(--eih-pink-soft);
}

.eih-card-magenta,
.wp-block-group.is-style-eih-card-magenta,
.wp-block-post:nth-child(4n),
.elementor-post:nth-child(4n) {
  background: var(--eih-magenta);
  color: var(--eih-white);
}

.eih-card-magenta h2,
.eih-card-magenta h3,
.eih-card-magenta p,
.wp-block-group.is-style-eih-card-magenta h2,
.wp-block-group.is-style-eih-card-magenta h3,
.wp-block-group.is-style-eih-card-magenta p,
.wp-block-post:nth-child(4n) h2,
.wp-block-post:nth-child(4n) h3,
.wp-block-post:nth-child(4n) p,
.elementor-post:nth-child(4n) h2,
.elementor-post:nth-child(4n) h3,
.elementor-post:nth-child(4n) p {
  color: inherit;
}

.eih-card img,
.wp-block-post-featured-image img,
.elementor-post__thumbnail img,
.wp-block-latest-posts__featured-image img {
  aspect-ratio: 1 / 0.78;
  border-radius: calc(var(--eih-radius-lg) - 0.55rem);
  object-fit: cover;
  width: 100%;
}

.eih-card h3,
.wp-block-post-title,
.wp-block-post-title a,
.elementor-post__title,
.elementor-post__title a,
.wp-block-latest-posts__post-title {
  color: inherit;
  font-family: var(--eih-font-display);
  font-weight: 900;
  letter-spacing: -0.025em;
  line-height: var(--eih-heading-line-height) !important;
  text-decoration: none !important;
  text-transform: none !important;
}

.eih-card .eih-card-arrow,
.wp-block-post-featured-image::before,
.elementor-post__thumbnail::before {
  align-items: center;
  background: var(--eih-magenta);
  border-radius: 0.55rem;
  color: var(--eih-white);
  content: "\2197";
  display: inline-flex;
  font-size: 1.25rem;
  font-weight: 800;
  height: 2.3rem;
  justify-content: center;
  line-height: 1;
  position: absolute;
  right: 1rem;
  top: 1rem;
  width: 2.3rem;
  z-index: 2;
}

.wp-block-post-featured-image,
.elementor-post__thumbnail {
  position: relative;
}

.wp-block-query .wp-block-post-template,
.elementor-posts-container,
.eih-card-grid,
.oc-card-grid {
  display: grid;
  gap: clamp(1rem, 2.2vw, 1.75rem);
}

.wp-block-query .wp-block-post-template.is-layout-grid,
.eih-card-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
}

/* =========================================================
   Gutenberg Core Blocks
   ========================================================= */

.wp-block-group,
.wp-block-cover,
.wp-block-columns,
.wp-block-media-text {
  margin-top: 0;
  margin-bottom: clamp(1.4rem, 3vw, 2.6rem);
}

.wp-block-group.has-background,
.wp-block-cover,
.wp-block-media-text.has-background {
  border-radius: var(--eih-radius-lg);
  padding: clamp(1.4rem, 4vw, 3rem);
}

.wp-block-cover {
  min-height: 460px;
}

.wp-block-cover .wp-block-cover__inner-container {
  color: inherit;
  max-width: var(--eih-wide-width);
}

.wp-block-image img,
.wp-block-gallery img,
.wp-block-media-text__media img {
  border-radius: var(--eih-radius-lg);
}

.wp-block-separator,
hr {
  border: 0;
  border-top: 1.5px solid var(--eih-green);
  margin: clamp(1.5rem, 4vw, 3rem) auto;
  max-width: 12rem;
}

.wp-block-separator.is-style-wide {
  max-width: var(--eih-wide-width);
}

/* Zitate (<q> oder <blockquote>) */
q,
blockquote,
.wp-block-quote,
.wp-block-pullquote,
.elementor-blockquote,
.elementor-widget-blockquote blockquote {
  quotes: "\201e" "\201c" "\201a" "\2018";
}

q {
  color: var(--eih-magenta);
  font-weight: 800;
}

q::before {
  content: open-quote;
}

q::after {
  content: close-quote;
}

blockquote,
.wp-block-quote,
.wp-block-pullquote,
.elementor-blockquote,
.elementor-widget-blockquote blockquote {
  background: var(--eih-white);
  border: 0 !important;
  border-left: 0.55rem solid var(--eih-pink) !important;
  border-radius: var(--eih-radius);
  box-shadow: var(--eih-shadow-xs);
  color: var(--eih-dark);
  font-size: clamp(1rem, 0.65vw + 0.96rem, 1.18rem);
  font-style: normal;
  line-height: var(--eih-line-height);
  margin: clamp(1.2rem, 3vw, 2.25rem) auto;
  max-width: var(--eih-content-width);
  padding: clamp(1.2rem, 3vw, 2rem);
  position: relative;
}

blockquote p,
.wp-block-quote p,
.wp-block-pullquote p,
.elementor-blockquote p {
  color: inherit;
  margin-bottom: 0.8rem;
}

blockquote cite,
.wp-block-quote cite,
.wp-block-pullquote cite,
.elementor-blockquote__author {
  color: var(--eih-text-muted);
  display: block;
  font-size: 0.9rem;
  font-style: normal;
  font-weight: 800;
  margin-top: 0.75rem;
}

.wp-block-pullquote {
  border-left: 0 !important;
  border-top: 0.55rem solid var(--eih-pink) !important;
  padding-left: clamp(1.2rem, 3vw, 2rem);
  text-align: left;
}

/* Tweet Button raus */
.twitter-share-button,
iframe[id^="twitter-widget-"],
iframe[src*="platform.twitter.com/widgets/tweet_button"],
.wp-block-quote .twitter-share-button,
.wp-block-pullquote .twitter-share-button,
.elementor-widget-blockquote .twitter-share-button,
.elementor-widget-blockquote iframe[src*="twitter.com"],
.elementor-share-btn_twitter,
.sharedaddy .share-twitter,
.sd-social-icon .share-twitter,
.eih-hide-tweet {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  overflow: hidden !important;
  visibility: hidden !important;
  width: 0 !important;
}

ul,
ol,
.wp-block-list {
  padding-left: 1.25em;
}

li,
.wp-block-list li,
.elementor-icon-list-item {
  margin-bottom: 0.35rem;
}

li::marker,
.wp-block-list li::marker {
  color: var(--eih-green);
  font-size: 1.28em;
  font-weight: 900;
}

.elementor-widget-icon-list .elementor-icon-list-icon {
  align-items: center;
  display: inline-flex;
  min-width: 1.45em;
}

.elementor-widget-icon-list .elementor-icon-list-icon i,
.elementor-widget-icon-list .elementor-icon-list-icon svg {
  color: var(--eih-green);
  fill: var(--eih-green);
  font-size: 1.2em;
  height: 1.2em;
  width: 1.2em;
}

/* Table */
.wp-block-table,
.elementor-widget-table,
table,
.oc-table {
  border-collapse: separate;
  border-spacing: 0;
  font-family: var(--eih-font-body);
  font-size: 0.96rem;
  line-height: 1.45;
  margin: clamp(1.2rem, 3vw, 2.25rem) auto;
  overflow: hidden;
  width: 100%;
}

.wp-block-table,
.elementor-widget-table,
table.oc-table,
.oc-table {
  border-radius: var(--eih-radius);
}

.wp-block-table table {
  margin: 0;
}

.wp-block-table thead,
table thead,
.oc-table thead {
  background: var(--eih-sage);
  color: var(--eih-white);
}

.wp-block-table th,
.wp-block-table td,
table th,
table td,
.oc-table th,
.oc-table td {
  border: 0;
  border-bottom: 1px solid rgba(41, 41, 41, 0.12);
  padding: 0.9rem 1rem;
  text-align: left;
  vertical-align: top;
}

.wp-block-table th,
table th,
.oc-table th {
  color: var(--eih-white);
  font-weight: 900;
  letter-spacing: 0.015em;
}

.wp-block-table tbody tr:nth-child(odd),
table tbody tr:nth-child(odd),
.oc-table tbody tr:nth-child(odd) {
  background: var(--eih-white);
}

.wp-block-table tbody tr:nth-child(even),
table tbody tr:nth-child(even),
.oc-table tbody tr:nth-child(even) {
  background: rgba(198, 225, 167, 0.24);
}

.wp-block-table tbody tr:hover,
table tbody tr:hover,
.oc-table tbody tr:hover {
  background: rgba(255, 173, 198, 0.18);
}

.wp-block-table tfoot,
table tfoot,
.oc-table tfoot {
  background: var(--eih-light);
  font-weight: 800;
}

.wp-block-table.is-style-stripes tbody tr:nth-child(odd) {
  background: var(--eih-white);
}

.wp-block-table.is-style-stripes tbody tr:nth-child(even) {
  background: rgba(198, 225, 167, 0.24);
}

pre,
code,
.wp-block-code,
.wp-block-preformatted {
  background: var(--eih-black);
  border-radius: var(--eih-radius);
  color: var(--eih-white);
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
}

.wp-block-code,
.wp-block-preformatted,
pre {
  overflow-x: auto;
  padding: 1rem 1.15rem;
}

.wp-block-details {
  background: var(--eih-white);
  border: var(--eih-border-soft);
  border-radius: var(--eih-radius);
  padding: 1rem 1.25rem;
}

.wp-block-details summary {
  color: var(--eih-dark);
  cursor: pointer;
  font-weight: 800;
}

/* =========================================================
   Elementor Widgets
   ========================================================= */

.elementor-widget-heading .elementor-heading-title {
  margin-bottom: 0;
}

.elementor-widget-image img,
.elementor-widget-image-box img {
  border-radius: var(--eih-radius-lg);
}

.elementor-widget-divider .elementor-divider-separator {
  border-top-color: var(--eih-green) !important;
}

.elementor-widget-counter .elementor-counter-number-wrapper {
  color: var(--eih-magenta);
  font-family: var(--eih-font-display);
  font-weight: 900;
}

.elementor-widget-testimonial .elementor-testimonial-content,
.elementor-testimonial__text {
  color: var(--eih-dark);
  font-style: normal;
}

.elementor-widget-testimonial .elementor-testimonial-name,
.elementor-testimonial__name {
  color: var(--eih-magenta);
  font-weight: 800;
}

.elementor-accordion .elementor-tab-title,
.elementor-toggle .elementor-tab-title,
.elementor-tabs .elementor-tab-title {
  background: var(--eih-white);
  border-radius: var(--eih-radius-sm);
  color: var(--eih-dark);
  font-weight: 800;
}

.elementor-accordion .elementor-tab-title.elementor-active,
.elementor-toggle .elementor-tab-title.elementor-active,
.elementor-tabs .elementor-tab-title.elementor-active {
  background: var(--eih-sage-light);
  color: var(--eih-dark);
}

.elementor-progress-wrapper {
  background: rgba(198, 225, 167, 0.35);
  border-radius: var(--eih-radius-pill);
}

.elementor-progress-bar {
  background: var(--eih-green);
  border-radius: var(--eih-radius-pill);
}

/* =========================================================
   Formulare - WordPress, Elementor, Contact Form 7, WPForms
   ========================================================= */

label,
.elementor-field-label,
.wpforms-field-label {
  color: var(--eih-dark);
  display: block;
  font-size: 0.92rem;
  font-weight: 800;
  margin-bottom: 0.35rem;
}

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="password"],
input[type="search"],
input[type="url"],
input[type="date"],
textarea,
select,
.elementor-field-group .elementor-field,
.wpcf7-form .wpcf7-text,
.wpcf7-form .wpcf7-email,
.wpcf7-form .wpcf7-tel,
.wpcf7-form .wpcf7-textarea,
.wpforms-field input,
.wpforms-field textarea,
.wpforms-field select {
  background: var(--eih-white) !important;
  border: 1.5px solid rgba(41, 41, 41, 0.18) !important;
  border-radius: var(--eih-radius) !important;
  color: var(--eih-dark);
  font-family: var(--eih-font-body);
  font-size: 1rem;
  line-height: 1.45;
  padding: 0.85rem 1rem;
  transition: border-color var(--eih-transition), box-shadow var(--eih-transition), background var(--eih-transition);
  width: 100%;
}

input:focus,
textarea:focus,
select:focus,
.elementor-field-group .elementor-field:focus,
.wpforms-field input:focus,
.wpforms-field textarea:focus,
.wpforms-field select:focus {
  border-color: var(--eih-green) !important;
  box-shadow: var(--eih-focus-ring) !important;
  outline: none;
}

textarea,
.elementor-field-textual.elementor-size-md {
  min-height: 8rem;
}

.required,
.wpforms-required-label,
.elementor-mark-required .elementor-field-label::after {
  color: var(--eih-magenta) !important;
}

/* =========================================================
   Callouts, Newsletter und Kontaktstreifen
   ========================================================= */

.eih-callout,
.eih-newsletter,
.oc-info-box,
.oc-highlight-box,
.wp-block-group.is-style-eih-callout {
  background: var(--eih-black);
  border-radius: var(--eih-radius-lg);
  color: var(--eih-white);
  padding: clamp(1.35rem, 3vw, 2.5rem);
}

.eih-callout h2,
.eih-callout h3,
.eih-callout p,
.eih-newsletter h2,
.eih-newsletter h3,
.eih-newsletter p,
.wp-block-group.is-style-eih-callout h2,
.wp-block-group.is-style-eih-callout h3,
.wp-block-group.is-style-eih-callout p {
  color: var(--eih-white);
}

.eih-badge,
.oc-badge,
.wp-block-tag-cloud a,
.tagcloud a {
  background: rgba(198, 225, 167, 0.35);
  border: var(--eih-border-green);
  border-radius: var(--eih-radius-pill);
  color: var(--eih-green-dark);
  display: inline-flex;
  font-size: 0.85rem !important;
  font-weight: 800;
  line-height: 1;
  padding: 0.45rem 0.8rem;
  text-decoration: none !important;
}

.eih-arrow-badge {
  align-items: center;
  background: var(--eih-green);
  border-radius: 0.75rem;
  color: var(--eih-white);
  display: inline-flex;
  font-size: 1.25rem;
  font-weight: 900;
  height: 2.4rem;
  justify-content: center;
  width: 2.4rem;
}



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

.site-footer,
footer.elementor-location-footer,
.elementor-location-footer,
.eih-site-footer,
.wp-block-template-part.eih-site-footer {
  background: var(--eih-black);
  color: rgba(255, 255, 255, 0.78);
  font-size: 0.95rem;
  padding: clamp(2.5rem, 6vw, 5rem) clamp(1rem, 3vw, 3rem);
}

.site-footer h2,
.site-footer h3,
.site-footer h4,
footer.elementor-location-footer h2,
footer.elementor-location-footer h3,
footer.elementor-location-footer h4,
.eih-site-footer h2,
.eih-site-footer h3,
.eih-site-footer h4 {
  color: var(--eih-pink);
}

.site-footer a,
footer.elementor-location-footer a,
.eih-site-footer a {
  color: rgba(255, 255, 255, 0.86);
  text-decoration: none;
}

.site-footer a:hover,
footer.elementor-location-footer a:hover,
.eih-site-footer a:hover {
  color: var(--eih-green);
}

.eih-footer-bottom,
.oc-footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: space-between;
  margin-top: 2rem;
  padding-top: 1rem;
}

/* =========================================================
   Utility-Klassen und .oc-Kompatibilitaet
   ========================================================= */

.text-orange,
.text-green,
.text-eih-green { color: var(--eih-green) !important; }
.text-blue,
.text-magenta,
.text-eih-magenta { color: var(--eih-magenta) !important; }
.text-pink,
.text-eih-pink { color: var(--eih-pink) !important; }
.text-sage,
.text-eih-sage { color: var(--eih-sage) !important; }
.text-gray,
.text-muted { color: var(--eih-text-muted) !important; }
.text-white { color: var(--eih-white) !important; }
.text-dark { color: var(--eih-dark) !important; }

.bg-orange,
.bg-green,
.bg-eih-green { background-color: var(--eih-green) !important; }
.bg-blue,
.bg-magenta,
.bg-eih-magenta { background-color: var(--eih-magenta) !important; }
.bg-pink,
.bg-eih-pink { background-color: var(--eih-pink) !important; }
.bg-sage,
.bg-eih-sage { background-color: var(--eih-sage) !important; }
.bg-light,
.bg-eih-light { background-color: var(--eih-light) !important; }
.bg-soft,
.bg-eih-soft { background-color: var(--eih-soft) !important; }
.bg-white { background-color: var(--eih-white) !important; }
.bg-dark { background-color: var(--eih-black) !important; }

.font-display { font-family: var(--eih-font-display) !important; }
.font-body { font-family: var(--eih-font-body) !important; }
.font-bold { font-weight: 800 !important; }
.font-normal { font-weight: 400 !important; }
.text-upper { text-transform: uppercase !important; letter-spacing: var(--eih-letter-tight) !important; }

.shadow-sm { box-shadow: var(--eih-shadow-sm) !important; }
.shadow-md { box-shadow: var(--eih-shadow-md) !important; }
.shadow-lg { box-shadow: var(--eih-shadow-lg) !important; }
.rounded { border-radius: var(--eih-radius) !important; }
.rounded-lg { border-radius: var(--eih-radius-lg) !important; }
.rounded-pill { border-radius: var(--eih-radius-pill) !important; }
.border-orange,
.border-green { border: var(--eih-border-green) !important; }
.border-blue,
.border-magenta { border: 1.5px solid var(--eih-magenta) !important; }

.mt-sm { margin-top: var(--eih-space-sm) !important; }
.mt-md { margin-top: var(--eih-space-md) !important; }
.mt-lg { margin-top: var(--eih-space-lg) !important; }
.mb-sm { margin-bottom: var(--eih-space-sm) !important; }
.mb-md { margin-bottom: var(--eih-space-md) !important; }
.mb-lg { margin-bottom: var(--eih-space-lg) !important; }
.pt-sm { padding-top: var(--eih-space-sm) !important; }
.pt-md { padding-top: var(--eih-space-md) !important; }
.pt-xl { padding-top: var(--eih-space-xl) !important; }
.pb-sm { padding-bottom: var(--eih-space-sm) !important; }
.pb-md { padding-bottom: var(--eih-space-md) !important; }
.pb-xl { padding-bottom: var(--eih-space-xl) !important; }
.py-xl { padding-top: var(--eih-space-xl) !important; padding-bottom: var(--eih-space-xl) !important; }

/* WordPress preset class bridges from theme.json */
.has-eih-dark-color { color: var(--eih-dark) !important; }
.has-eih-black-color { color: var(--eih-black) !important; }
.has-eih-sage-color { color: var(--eih-sage) !important; }
.has-eih-sage-light-color { color: var(--eih-sage-light) !important; }
.has-eih-green-color { color: var(--eih-green) !important; }
.has-eih-magenta-color { color: var(--eih-magenta) !important; }
.has-eih-rose-color { color: var(--eih-rose) !important; }
.has-eih-pink-color { color: var(--eih-pink) !important; }
.has-eih-soft-color { color: var(--eih-soft) !important; }
.has-eih-light-color { color: var(--eih-light) !important; }
.has-eih-white-color { color: var(--eih-white) !important; }
.has-eih-dark-background-color { background-color: var(--eih-dark) !important; }
.has-eih-black-background-color { background-color: var(--eih-black) !important; }
.has-eih-sage-background-color { background-color: var(--eih-sage) !important; }
.has-eih-sage-light-background-color { background-color: var(--eih-sage-light) !important; }
.has-eih-green-background-color { background-color: var(--eih-green) !important; }
.has-eih-magenta-background-color { background-color: var(--eih-magenta) !important; }
.has-eih-rose-background-color { background-color: var(--eih-rose) !important; }
.has-eih-pink-background-color { background-color: var(--eih-pink) !important; }
.has-eih-soft-background-color { background-color: var(--eih-soft) !important; }
.has-eih-light-background-color { background-color: var(--eih-light) !important; }
.has-eih-white-background-color { background-color: var(--eih-white) !important; }

/* =========================================================
   Responsive
   ========================================================= */

@media (max-width: 1024px) {
  :root {
    --eih-space-2xl: 4.5rem;
    --eih-space-xl: 3rem;
  }

  .main-navigation a,
  .elementor-nav-menu a,
  .elementor-nav-menu .elementor-item,
  .wp-block-navigation a,
  .wp-block-navigation-item__content {
    min-width: auto;
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }
}

@media (max-width: 782px) {
  .admin-bar .site-header,
  .admin-bar header.elementor-location-header,
  .admin-bar .elementor-location-header,
  .admin-bar .eih-site-header {
    top: 46px;
  }
}

@media (max-width: 768px) {
  :root {
    --eih-space-2xl: 3.5rem;
    --eih-space-xl: 2.5rem;
    --eih-radius-lg: 1.45rem;
  }

  h1,
  .eih-h1,
  .entry-title,
  .page-title,
  .elementor-widget-heading h1.elementor-heading-title,
  .editor-styles-wrapper h1 {
    font-size: clamp(2.15rem, 10vw, 3.65rem) !important;
  }

  h2,
  .eih-h2,
  .elementor-widget-heading h2.elementor-heading-title,
  .editor-styles-wrapper h2 {
    font-size: clamp(1.7rem, 8vw, 2.85rem) !important;
  }

  .eih-hero,
  .wp-block-cover.eih-hero,
  .wp-block-group.eih-hero,
  .elementor-section.eih-hero,
  .e-con.eih-hero {
    padding: 3rem 1.15rem;
  }

  .wp-block-group.has-background,
  .wp-block-cover,
  .wp-block-media-text.has-background {
    padding: 1.2rem;
  }

  .wp-block-media-text.is-stacked-on-mobile .wp-block-media-text__content {
    padding: 1.2rem 0 0;
  }

  .wp-block-table,
  .elementor-widget-table {
    overflow-x: auto;
  }
}

@media (max-width: 480px) {
  body,
  .editor-styles-wrapper {
    font-size: 1rem;
  }

  .main-navigation ul,
  .elementor-nav-menu,
  .wp-block-navigation__container,
  .eih-nav ul {
    gap: 0.5rem;
  }

  .main-navigation a,
  .elementor-nav-menu a,
  .elementor-nav-menu .elementor-item,
  .wp-block-navigation a,
  .wp-block-navigation-item__content {
    min-height: 2rem;
    padding: 0.45rem 0.8rem !important;
  }

  .eih-footer-bottom,
  .oc-footer-bottom {
    flex-direction: column;
  }
}

/* =========================================================
   Print
   ========================================================= */

@media print {
  .site-header,
  .main-navigation,
  .elementor-location-header,
  .eih-site-header,
  .elementor-button,
  .wp-block-button,
  .oc-btn,
  .eih-btn {
    display: none !important;
  }

  body {
    background: #ffffff !important;
    color: #171717 !important;
    font-size: 11pt;
  }

  h1,
  h2,
  h3 {
    color: #171717 !important;
    page-break-after: avoid;
  }

  table,
  blockquote,
  .eih-card {
    page-break-inside: avoid;
  }
}
