
.gm{--gm-ease:cubic-bezier(.22,1,.36,1);--gm-ease-io:cubic-bezier(.65,0,.35,1);--gm-dur:300ms;--gm-gold-a:#CE6A43;--gm-gold-b:#C95629;--gm-acc:#C95629}
html.gm[data-gm="facility"]{--gm-gold-a:#E5A587;--gm-gold-b:#E0936E;--gm-acc:#E0936E}
html.gm[data-gm="energy"]{--gm-gold-a:#A9DD76;--gm-gold-b:#7EC833;--gm-acc:#7EC833}

/* ---------- 1 · load sequence (same timing as Energy heroes) ---------- */
@keyframes gmUp{from{opacity:0;translate:0 24px}}
@keyframes gmDown{from{opacity:0;translate:0 -16px}}
@keyframes gmFade{from{opacity:0;scale:1.03}}
@keyframes gmVeil{from{opacity:1}to{opacity:0}}
@media (prefers-reduced-motion:no-preference){
  .gm .bn-d .bn-bar,.gm .bn-m .bn-bar,.gm #bgh-wrap,.gm #bgh-m-hero{animation:gmDown .3s var(--gm-ease) .2s backwards}
  .gm :is([data-elementor-type="wp-page"],[data-elementor-type="archive"]) > :first-child{isolation:isolate}
  .gm :is([data-elementor-type="wp-page"],[data-elementor-type="archive"]) > :first-child::after{content:"";position:absolute;inset:0;z-index:-1;background:#F9F7F5;pointer-events:none;animation:gmVeil .7s var(--gm-ease) forwards}
  .gm :is([data-elementor-type="wp-page"],[data-elementor-type="archive"]) > :first-child h1{animation:gmUp .4s var(--gm-ease) .35s backwards}
  .gm :is([data-elementor-type="wp-page"],[data-elementor-type="archive"]) > :first-child p:not(a p){animation:gmUp .3s var(--gm-ease) .5s backwards}
  .gm :is([data-elementor-type="wp-page"],[data-elementor-type="archive"]) > :first-child img:not(.e-svg-base img){animation:gmFade .6s var(--gm-ease) .45s backwards}
  .gm :is([data-elementor-type="wp-page"],[data-elementor-type="archive"]) > :first-child :is(a.e-button-base,.elementor-button,.header-link){animation:gmUp .3s var(--gm-ease) .85s backwards}
  .gm :is([data-elementor-type="wp-page"],[data-elementor-type="archive"]) > :first-child :is(a.e-button-base,.header-link) ~ :is(a.e-button-base,.header-link){animation-delay:.95s}
}

/* ---------- 2 · scroll reveals: text + card rows ---------- */
.gm.gm-js .gm-tr{opacity:0;translate:0 14px;transition:opacity .45s var(--gm-ease) var(--gm-d,0ms),translate .55s var(--gm-ease) var(--gm-d,0ms)}
.gm.gm-js .gm-tr.gm-in{opacity:1;translate:0 0}
.gm.gm-js .gm-r{opacity:0;translate:0 24px;transition:opacity var(--gm-dur) var(--gm-ease) var(--gm-d,0ms),translate var(--gm-dur) var(--gm-ease) var(--gm-d,0ms)}
.gm.gm-js .gm-r.gm-in{opacity:1;translate:0 0}

/* ---------- 4 · marquee hover: enlarge + Corten accent (Bau gold, Energy green) ---------- */
.gm .marquee-track .feature-item{transition:transform .35s var(--gm-ease)}
.gm .marquee-track .feature-item svg,.gm .marquee-track .feature-item svg path,.gm .marquee-track .feature-item p{transition:fill .35s ease,color .35s ease}
@media (hover:hover) and (pointer:fine){
  .gm .marquee-track .feature-item:has(p):hover{transform:scale(1.2);position:relative;z-index:2}
  .gm .marquee-track .feature-item:has(p):hover svg,.gm .marquee-track .feature-item:has(p):hover svg path{fill:url(#gmCortenGrad) !important}
  .gm .marquee-track .feature-item:has(p):hover p{background:linear-gradient(90deg,var(--gm-gold-a) 7%,var(--gm-gold-b) 100%);-webkit-background-clip:text;background-clip:text;color:transparent !important;-webkit-text-fill-color:transparent}
}

/* ---------- 5 · photo-section parallax (background moved into a scroll-timeline layer) ---------- */
.gm .gm-px-host{isolation:isolate}
.gm .gm-px{position:absolute;inset:0;overflow:hidden;overflow:clip;z-index:-2;pointer-events:none}
.gm .gm-px-layer{position:absolute;left:0;right:0;top:-12%;bottom:-12%}
@keyframes gmPx{from{translate:0 -9%}to{translate:0 9%}}
@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.gm .gm-px-layer{animation:gmPx linear both;animation-timeline:view()}}}

/* ---------- 6 · CTA button states (Figma "Button States" 6928:35580 — Corten primary + outline, desktop & mobile) ---------- */
.gm{--gm-c:#C95629;--gm-c-hi:#CE6A43;--gm-c-lo:#934527;--gm-ink:#151211;--gm-paper:#F9F7F5;--gm-stahl:#CFD5D4;
  --gm-arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M208 32H48a16 16 0 0 0-16 16v160a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16Zm0 176H48V48h160Zm-42.34-85.66a8 8 0 0 1 0 11.32l-32 32a8 8 0 0 1-11.32-11.32L140.69 136H88a8 8 0 0 1 0-16h52.69l-18.35-18.34a8 8 0 0 1 11.32-11.32Z'/%3E%3C/svg%3E");
  --gm-check:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M208 32H48a16 16 0 0 0-16 16v160a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16Zm-34.34 77.66-56 56a8 8 0 0 1-11.32 0l-24-24a8 8 0 0 1 11.32-11.32L112 148.69l50.34-50.35a8 8 0 0 1 11.32 11.32Z'/%3E%3C/svg%3E")}
.gm :is(.gm-btn-p,.gm-btn-s){border-radius:2px !important;transition:background-color .2s ease,border-color .2s ease,color .2s ease,box-shadow .25s var(--gm-ease),transform .16s var(--gm-ease) !important;-webkit-tap-highlight-color:transparent}
.gm :is(.gm-btn-p,.gm-btn-s) *{color:inherit !important;transition:color .2s ease}
.gm .gm-btn-p{background-color:var(--gm-c) !important;border-color:var(--gm-c) !important;color:var(--gm-paper) !important;box-shadow:none !important}
.gm .gm-btn-s{background-color:transparent !important;border-color:var(--gm-c) !important;box-shadow:inset 0 0 0 1px var(--gm-c) !important;color:var(--gm-ink) !important}
.gm .gm-btn-s.gm-on-dark{border-color:var(--gm-paper) !important;box-shadow:inset 0 0 0 1px var(--gm-paper) !important;color:var(--gm-paper) !important}
.gm :is(.gm-btn-p,.gm-btn-s):focus-visible{outline:2px solid var(--gm-ink) !important;outline-offset:2px}
.gm .gm-btn-s.gm-on-dark:focus-visible{outline-color:var(--gm-paper) !important}
@media (hover:hover) and (pointer:fine){
  .gm .gm-btn-p:hover{background-color:var(--gm-c-hi) !important;border-color:var(--gm-c-hi) !important;box-shadow:0 4px 4px rgba(0,0,0,.25) !important}
  .gm .gm-btn-s:hover{background-color:var(--gm-c-hi) !important;border-color:var(--gm-c) !important;box-shadow:inset 0 0 0 1px var(--gm-c),0 8px 24px rgba(21,18,17,.2) !important;color:var(--gm-paper) !important}
  .gm .gm-btn-p:active{background-color:var(--gm-c-lo) !important;border-color:var(--gm-c-lo) !important;box-shadow:none !important;transform:scale(.98)}
  .gm .gm-btn-s:active{background-color:var(--gm-c-lo) !important;box-shadow:inset 0 0 0 1px var(--gm-c) !important;color:var(--gm-paper) !important;transform:scale(.98)}
}
/* trailing arrow (desktop variant) */
@media (min-width:1025px){
  .gm :is(.gm-btn-p,.gm-btn-s).gm-ico{display:inline-flex !important;flex-direction:row !important;flex-wrap:nowrap !important;align-items:center !important;justify-content:center;gap:10px !important}
  .gm :is(.gm-btn-p,.gm-btn-s).gm-ico > *{margin-block:0 !important}
  .gm :is(.gm-btn-p,.gm-btn-s).gm-ico::after{content:"";flex:none;width:20px;height:20px;margin-block:-4px;background:currentColor;-webkit-mask:var(--gm-arrow) center/contain no-repeat;mask:var(--gm-arrow) center/contain no-repeat;transition:transform .25s var(--gm-ease)}
  .gm :is(.gm-btn-p,.gm-btn-s).gm-ico:hover::after{transform:translateX(2px)}
}
/* career banner button (Über uns 1f46fbc, Team archive 515b6dc): Figma 160x44, 16/24 padding, single line, no icon */
.gm :is([data-id="1f46fbc"],[data-id="515b6dc"]){min-width:160px;padding:16px 24px !important;white-space:nowrap;justify-content:center !important}
.gm :is([data-id="1f46fbc"],[data-id="515b6dc"]) p{white-space:nowrap}
.gm :is([data-id="1f46fbc"],[data-id="515b6dc"])::after{display:none !important}
/* done state (forms / success) */
.gm :is(.gm-btn-p,.gm-btn-s).is-done{background-color:var(--gm-stahl) !important;border-color:var(--gm-stahl) !important;box-shadow:none !important;color:var(--gm-c) !important;pointer-events:none}
.gm :is(.gm-btn-p,.gm-btn-s).is-done.gm-ico::after{-webkit-mask-image:var(--gm-check);mask-image:var(--gm-check)}
/* mobile variant: no icon, dark label on primary, pressed = Corten hell + shadow */
@media (max-width:767px){
  .gm .gm-btn-p{color:var(--gm-ink) !important}
  .gm .gm-btn-p:active{background-color:var(--gm-c-hi) !important;border-color:var(--gm-c) !important;box-shadow:0 4px 4px rgba(0,0,0,.25) !important}
  .gm .gm-btn-s:active{background-color:var(--gm-c-hi) !important;color:var(--gm-paper) !important}
}

/* ---------- 7 · image cards: quiet zoom inside their frame on hover (team, offices, show homes) ---------- */
.gm .gm-zoom{overflow:hidden;overflow:clip}
.gm .gm-zoom img{transition:scale .6s var(--gm-ease)}
@media (hover:hover) and (pointer:fine){.gm .gm-card:hover .gm-zoom img{scale:1.04}}

/* ---------- 8 · trust carousel (Google review cards): branded hover ---------- */
.gm .testimonial-card{transition:transform .35s var(--gm-ease),box-shadow .35s var(--gm-ease) !important}
.gm .testimonial-card p,.gm .testimonial-card strong{transition:color .25s ease}
@media (hover:hover) and (pointer:fine){
  .gm .testimonial-card:hover{transform:translateY(-4px);box-shadow:inset 0 0 0 1.5px var(--gm-acc),0 16px 40px rgba(21,18,17,.16) !important}
  .gm .testimonial-card:hover p:is([class*="paragraph"]):first-of-type{color:var(--gm-acc) !important}
  .gm .testimonial-card:hover .gm-stars,.gm .testimonial-card:hover .mehr,.gm .testimonial-card:hover .mehr *{color:var(--gm-acc) !important}
}
.gm .testimonial-card:active{transform:translateY(-1px) scale(.99)}

/* ---------- 9 · Facility "Müssen Sie Ihrer Verwaltung hinterherlaufen?": app icons + live badge counters ---------- */
.gm .gm-app{display:block;overflow:visible}
.gm .gm-app .gm-badge{transform-box:fill-box;transform-origin:50% 50%}
.gm .gm-app .gm-num{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue",Arial,sans-serif;font-weight:400;fill:#fff;font-variant-numeric:tabular-nums}
@media (prefers-reduced-motion:no-preference){
  .gm .gm-apps-wait .gm-app{opacity:0;transform:translateY(18px) scale(.94)}
  .gm .gm-apps-wait .gm-app .gm-badge{opacity:0;transform:scale(.4)}
  .gm .gm-apps-go .gm-app{opacity:1;transform:none;transition:opacity .45s ease var(--gm-d,0ms),transform .6s var(--gm-ease) var(--gm-d,0ms)}
  .gm .gm-apps-go .gm-app .gm-badge{opacity:1;transform:none;transition:opacity .25s ease calc(var(--gm-d,0ms) + 320ms),transform .45s cubic-bezier(.16,1,.3,1) calc(var(--gm-d,0ms) + 320ms)}
  @media (hover:hover) and (pointer:fine){
    .gm .gm-apps-done .gm-app{transition:transform .3s var(--gm-ease)}
    .gm .gm-apps-done .gm-app:hover{transform:translateY(-4px)}
  }
}

@media (prefers-reduced-motion:reduce){.gm .gm-tr,.gm .gm-r{opacity:1 !important;translate:none !important;transition:none !important}}
