/* M&A Reinigung – motion & hover extensions for native Elementor elements. */
:root{--ma-ease:cubic-bezier(.16,1,.3,1)}

/* Scroll reveal ----------------------------------------------------------- */
@media (prefers-reduced-motion:no-preference){
  body:not(.elementor-editor-active) [class*="ma-rv-"]:not(.ma-in){opacity:0}
  body:not(.elementor-editor-active) .ma-rv-up:not(.ma-in){transform:translateY(30px)}
  body:not(.elementor-editor-active) .ma-rv-up16:not(.ma-in){transform:translateY(16px)}
  body:not(.elementor-editor-active) .ma-rv-up18:not(.ma-in){transform:translateY(18px)}
  body:not(.elementor-editor-active) .ma-rv-up26:not(.ma-in){transform:translateY(26px)}
  body:not(.elementor-editor-active) .ma-rv-glove:not(.ma-in){transform:translate(60px,90px)}
  body:not(.elementor-editor-active) .ma-rv-stamp:not(.ma-in){scale:1.25}
  body [class*="ma-rv-"][class*="ma-rv-"]{transition:opacity var(--ma-rv-dur,900ms) var(--ma-ease) var(--ma-rv-delay,0ms),transform var(--ma-rv-dur,900ms) var(--ma-ease) var(--ma-rv-delay,0ms),background .3s,border .3s,border-radius .3s,box-shadow .3s}
  body [class*="ma-rv-"][class*="ma-rv-"].ma-hg-yes{transition:opacity var(--ma-rv-dur,900ms) var(--ma-ease) var(--ma-rv-delay,0ms),transform var(--ma-rv-dur,900ms) var(--ma-ease) var(--ma-rv-delay,0ms),padding .45s var(--ma-ease),background-color .3s}
  body .ma-rv-stamp.ma-rv-stamp{transition:opacity .15s linear var(--ma-rv-delay,0ms),scale .35s cubic-bezier(.3,1.6,.5,1) var(--ma-rv-delay,0ms)!important}
  body .ma-rv-fade.ma-rv-fade{transition-property:opacity}
  /* "on page load" reveals run as CSS animations so they start with the first paint, like the design */
  .ma-rv-up{--ma-rv-from:translateY(30px)}.ma-rv-up16{--ma-rv-from:translateY(16px)}.ma-rv-up18{--ma-rv-from:translateY(18px)}
  .ma-rv-up26{--ma-rv-from:translateY(26px)}.ma-rv-glove{--ma-rv-from:translate(60px,90px)}.ma-rv-stamp{--ma-rv-scale:1.25}
  body:not(.elementor-editor-active) .ma-rvt-load.ma-rvt-load{opacity:1;transform:none;scale:none;animation:ma-rv-load var(--ma-rv-dur,900ms) var(--ma-ease) var(--ma-rv-delay,0ms) backwards}
  body:not(.elementor-editor-active) .ma-rv-stamp.ma-rvt-load{animation-timing-function:cubic-bezier(.3,1.6,.5,1);animation-duration:.35s}
  @keyframes ma-rv-load{from{opacity:0;transform:var(--ma-rv-from,none);scale:var(--ma-rv-scale,1)}}
}

/* Press ------------------------------------------------------------------- */
.elementor-widget.ma-press-yes .elementor-button:active,.elementor .elementor-widget.ma-press-yes .elementor-button:hover:active{transform:translateY(1px) scale(.98)}
.elementor-widget.ma-press-push .elementor-button:active,.elementor .elementor-widget.ma-press-push .elementor-button:hover:active{transform:translate(3px,3px);box-shadow:1px 1px 0 var(--ma-press-shadow,#0B1F33)}

/* Hover groups ------------------------------------------------------------ */
.ma-hg-yes{transition:padding .45s var(--ma-ease),background-color .3s}
.e-con.ma-hg-yes:hover{padding-inline-start:calc(var(--padding-left,0px) + var(--ma-hshift,0px))}
.ma-hfx-tilt .elementor-icon,.ma-hfx-tilt .elementor-icon i,.ma-hfx-tilt .elementor-icon svg{transition:transform .5s var(--ma-ease),background-color .3s,color .3s,border-color .3s}
.ma-hg-yes:hover .ma-hfx-tilt .elementor-icon{transform:rotate(-10deg) scale(1.1)}
.ma-hfx-zoom img{transition:transform 1.2s var(--ma-ease)}
.ma-hg-yes:hover .ma-hfx-zoom img{transform:scale(1.04)}
.ma-hfx-turn .elementor-icon{transition:transform .45s var(--ma-ease),background-color .3s,border-color .3s,color .3s}
.ma-hg-yes:hover .ma-hfx-turn .elementor-icon{transform:rotate(-45deg)}
.ma-hfx-swap .elementor-icon{transition:background-color .3s,color .3s,border-color .3s}

/* Image helpers ------------------------------------------------------------ */
.elementor-widget-image.ma-fill-yes{position:absolute!important;inset:0;width:100%!important;height:100%;max-width:none!important;margin:0!important;z-index:0}
.ma-fill-yes > .elementor-widget-container,.ma-fill-yes a{display:block;width:100%;height:100%}
.ma-fill-yes img{width:100%!important;height:100%!important;max-width:none!important;object-fit:cover;display:block}
@media (prefers-reduced-motion:no-preference){
  .elementor-widget.ma-tabin-yes{overflow:hidden}
  .ma-tabin-yes img{animation:ma-tabin .8s cubic-bezier(.16,1,.3,1)}
  @keyframes ma-tabin{from{opacity:0;transform:scale(1.08)}to{opacity:1;transform:none}}
}

/* Header that changes after scrolling -------------------------------------- */
.ma-hdr-yes{transition:background-color .35s,box-shadow .35s,color .35s}
.ma-hdr-yes .elementor-item,.ma-hdr-yes .elementor-heading-title,.ma-hdr-yes .elementor-icon-list-text,.ma-hdr-yes .elementor-icon,.ma-hdr-yes .e-con{transition:color .35s,background-color .3s,box-shadow .35s}

/* Tape strip on containers */
.e-con.ma-tape-yes::after{content:"";position:absolute;top:var(--ma-tape-t,-16px);left:var(--ma-tape-l,auto);right:var(--ma-tape-r,auto);width:var(--ma-tape-w,130px);height:var(--ma-tape-h,34px);background:var(--ma-tape-c,rgba(255,214,110,.7));transform:rotate(var(--ma-tape-rot,0deg));mix-blend-mode:var(--ma-tape-blend,multiply);z-index:2;pointer-events:none}

/* Mobile menu opened inside the header (like the design) */
.ma-hdropen-yes.ma-menu-open,.ma-hdropen-yes.ma-menu-open > .e-con-inner{flex-wrap:wrap!important;row-gap:var(--ma-open-rowgap,30px)!important}
.ma-hdropen-yes.ma-menu-open:not(.e-con-boxed),.ma-hdropen-yes.ma-menu-open > .e-con-inner{padding-top:var(--ma-open-padt,0px)!important;padding-bottom:var(--ma-open-padb,20px)!important}
.ma-hdropen-yes.ma-menu-open .elementor-widget-nav-menu,.ma-hdropen-yes.ma-menu-open .elementor-widget-nav-menu > .elementor-widget-container{display:contents}
body .ma-hdropen-yes.ma-menu-open .elementor-widget-nav-menu .elementor-nav-menu--dropdown.elementor-nav-menu__container{position:static!important;left:auto!important;top:auto!important;width:100%!important;max-width:none!important;max-height:none!important;order:1;margin:var(--ma-open-menu-mt,6px) 0 0!important;transform:none!important;box-shadow:none!important;background:transparent!important;overflow:visible!important}
.ma-hdropen-yes.ma-menu-open .elementor-nav-menu--dropdown .elementor-nav-menu{display:flex;flex-direction:column;gap:var(--ma-open-items-gap,14px)}
.ma-hdropen-yes.ma-menu-open .elementor-nav-menu--dropdown .elementor-nav-menu::before,.ma-hdropen-yes.ma-menu-open .elementor-nav-menu--dropdown .elementor-nav-menu::after{display:none}
.ma-hdropen-yes.ma-menu-open .elementor-nav-menu--dropdown .elementor-item{background:transparent!important}
.ma-hdropen-yes.ma-menu-open .elementor-menu-toggle{order:3;margin-left:auto}
.ma-hdropen-yes.ma-menu-open .elementor-widget.ma-mshow-yes{display:block!important;order:2}

/* Pro form: pill radios + checkboxes -------------------------------------- */
.ma-pills-yes .elementor-field-type-radio .elementor-field-subgroup{display:flex;flex-wrap:wrap;gap:8px}
.ma-pills-yes .elementor-field-type-radio .elementor-field-option{position:relative;margin:0!important;padding:0!important}
.ma-pills-yes .elementor-field-type-radio .elementor-field-option input{position:absolute;inset:0;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;z-index:1}
.ma-pills-yes .elementor-field-type-radio .elementor-field-option label{display:inline-block;padding:.6em 1.05em;border:1.5px solid var(--ma-pill-border,#C2D3DF);border-radius:999px;font-size:.95rem;font-weight:500;line-height:1.6!important;transition:background .2s,border-color .2s;cursor:pointer}
.ma-pills-yes .elementor-field-type-radio .elementor-field-option input:checked + label{background:var(--ma-pill-on,#4BD584);border-color:var(--ma-pill-on,#4BD584);color:var(--ma-pill-on-text,#062B57);font-weight:600}
body .elementor-widget.ma-pills-yes .elementor-field-type-radio .elementor-field-option input:checked + label{font-weight:600}
.ma-pills-yes .elementor-field-type-radio .elementor-field-option input:focus-visible + label{outline:3px solid #009FE3;outline-offset:2px}
.ma-pillstyle-square .elementor-field-type-radio .elementor-field-option label{border-radius:4px;border-width:2px;font-weight:600;padding:.55em .9em}
.ma-pillstyle-square .elementor-field-type-radio .elementor-field-option input:checked + label{box-shadow:3px 3px 0 var(--ma-pill-border,#0B1F33)}
.elementor-field-type-acceptance .elementor-field-subgroup,.elementor-field-type-checkbox .elementor-field-subgroup{display:flex}
.elementor-field-type-acceptance .elementor-field-option,.elementor-field-type-checkbox .elementor-field-option{display:flex;gap:12px;align-items:flex-start}
.elementor-field-type-checkbox .elementor-field-option{align-items:center}
.elementor-field-type-acceptance .elementor-field-option label,.elementor-field-type-checkbox .elementor-field-option label{padding:0;margin:0}
.elementor-field-type-acceptance .elementor-field-option input,.elementor-field-type-checkbox .elementor-field-option input{flex:none;margin:3px 3px 3px 4px}
.elementor-field-type-acceptance .elementor-field-option input{margin-top:2px}
.elementor-field-type-acceptance .elementor-field-option label,.elementor-field-type-checkbox .elementor-field-option label{line-height:1.6!important}

/* Editor: always show final state */
.elementor-editor-active [class*="ma-rv-"]{opacity:1!important;transform:none!important;scale:none!important}
@media (prefers-reduced-motion:reduce){[class*="ma-rv-"]{opacity:1!important;transform:none!important;scale:none!important}}

/* Phosphor icons inside native widgets: icon box = 1em (like the inline SVGs of the designs) */
.elementor-widget .elementor-icon-list-icon i[class*="ph-"],.elementor-widget .elementor-icon-list-icon i.ph{width:1em;text-align:center}
.elementor-widget .elementor-icon-list-icon i.ma-draw{width:1em;height:1em;flex:none}
.elementor-icon i.ma-draw{display:block}
.elementor-icon i[class*="ph-"],.elementor-icon i.ph{display:block;width:1em;height:1em;line-height:1}
.elementor-icon-wrapper:has(i[class*="ph-"]),.elementor-icon-wrapper:has(i.ph){line-height:0}
.elementor-icon-wrapper:has(i[class*="ph-"]) .elementor-icon,.elementor-icon-wrapper:has(i.ph) .elementor-icon{vertical-align:top}
.elementor-widget.ma-free-yes{max-width:none!important}
.elementor-button .elementor-button-icon i[class*="ph-"]{font-size:1.15em;display:block}
/* text and icon sit centred in the button like the design's inline-flex buttons (no stretched text box) */
.elementor-button .elementor-button-content-wrapper{align-items:center}
.elementor-button .elementor-button-icon:has(i[class*="ph-"]){font-size:inherit}

/* Buttons: the wrapper's text strut must not add space under link-style buttons */
.elementor-widget-button .elementor-button-wrapper,.elementor-widget-button:not(:has(> .elementor-widget-container)):has(> .elementor-button){line-height:0}
