/* ESG × Elementor – Brücke. Laden nach dem Kit (Site Settings → Eigenes CSS oder Plugin esg-elemente). */
:root{
--esg-navy:var(--e-global-color-primary,#0e1f3d);
--esg-vereinblau:var(--e-global-color-secondary,#0046ad);
--esg-mittelblau:var(--e-global-color-accent,#1e62d0);
--color-text:var(--e-global-color-text,#0e1f3d);
--font-display:var(--e-global-typography-primary-font-family,"Bebas Neue"),Impact,sans-serif;
--font-body:var(--e-global-typography-text-font-family,"Montserrat"),system-ui,sans-serif;
}
/* Robuste Texte */
html[lang^="de"] body{hyphens:auto}
.elementor-heading-title{text-wrap:balance;overflow-wrap:anywhere}
.elementor-widget-text-editor,.elementor-widget-theme-post-excerpt{text-wrap:pretty;overflow-wrap:break-word}
.e-con,.e-con-inner{min-width:0}
.esg-clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.esg-card-fill{display:flex;flex-direction:column;height:100%}.esg-card-fill>.esg-card-action{margin-top:auto}
/* Button-Varianten am Button-Widget (Feld „CSS-Klassen“) */
.elementor-button{white-space:normal;text-align:center;min-height:48px;line-height:1.2;transition:background-color .2s cubic-bezier(.22,1,.36,1),color .2s cubic-bezier(.22,1,.36,1)}
.elementor-button:active{translate:0 1px}
.esg-btn--secondary .elementor-button{background:transparent;color:var(--esg-vereinblau);border:2px solid var(--esg-vereinblau)}
.esg-btn--secondary .elementor-button:hover{background:#e7edf5;color:var(--esg-vereinblau)}
.esg-btn--light .elementor-button{background:#fff;color:var(--esg-navy)}
.esg-btn--light .elementor-button:hover{background:#e7edf5;color:var(--esg-navy)}
.esg-btn--outline-light .elementor-button{background:transparent;color:#fff;border:2px solid #fff}
.esg-btn--outline-light .elementor-button:hover{background:rgb(255 255 255 / .12);color:#fff}
.elementor-button-wrapper{display:flex;flex-wrap:wrap;gap:.75rem}
/* Fokus */
:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid var(--esg-mittelblau);outline-offset:2px}
.esg-surface-dark :focus-visible{outline-color:#a3cfff}
/* Mobile Schnellleiste: Platz am Seitenende freihalten */
@media (max-width:767px){body{padding-bottom:60px}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:0ms!important;animation:none!important}}

/* 0.2.0 – Etappe 5: Fokus auf dunklen Flächen, Formularfelder, Schnellleiste, Karten-Hover */
.elementor-location-header :focus-visible,.elementor-location-footer :focus-visible,.esg-schnellleiste :focus-visible{outline:3px solid #a3cfff;outline-offset:2px}
.elementor-field-group .elementor-field-textual:focus{border-color:var(--esg-mittelblau,#1e62d0);outline:3px solid var(--esg-mittelblau,#1e62d0);outline-offset:2px;box-shadow:none}
.elementor-field-group .elementor-field-textual:hover{border-color:var(--esg-navy,#0e1f3d)}
.elementor-field-group .elementor-field-textual{min-height:48px}
.elementor-field-group.elementor-error .elementor-field-textual{border-color:#b3261e}
.elementor-message.elementor-message-danger,.elementor-field-group .elementor-message{color:#b3261e;font:600 14px/1.4 Montserrat,sans-serif}
.elementor-message.elementor-message-danger::before,.elementor-field-group .elementor-message::before{content:"⚠ "}
.elementor-button:active{transform:translateY(1px)}
.esg-schnellleiste .elementor-icon-box-title,.esg-schnellleiste .elementor-icon-box-title a{color:#fff;font-size:12px}
.esg-card{box-shadow:0 4px 20px rgb(14 31 61 / .08);transition:transform .2s,box-shadow .2s}
.esg-card:hover{transform:translateY(-3px);box-shadow:0 8px 28px rgb(14 31 61 / .16)}
@media (max-width:767px){body{padding-bottom:60px}}
@media (prefers-reduced-motion:reduce){.esg-card,.esg-card:hover{transition:none;transform:none}}
.elementor-location-header .elementor-button{white-space:nowrap}
