
.ims-gf-grid,.ims-gf-grid *{box-sizing:border-box}
.ims-gf-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 24px;width:100%;align-items:stretch}
.ims-gf-grid .ims-gf-card{position:relative;isolation:isolate;min-width:0;min-height:520px;padding:28px 24px 24px;border-radius:25px;overflow:hidden;display:flex;flex-direction:column;background:linear-gradient(160deg,#33274c 0%,#211b29 55%,#200b2e 100%);border:1px solid rgba(255,255,255,.18);color:#fff;text-decoration:none!important;box-shadow:0 0 0 1px rgba(182,120,255,.12),0 0 22px rgba(140,90,255,.20),inset 0 0 30px rgba(255,255,255,.04);transition:transform .35s ease,box-shadow .35s ease}
.ims-gf-grid .ims-gf-card::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(circle at top left,rgba(120,80,255,.18),transparent 48%),radial-gradient(circle at bottom center,rgba(255,70,220,.09),transparent 40%)}
.ims-gf-grid .ims-gf-title{margin:0!important;padding:0;color:#fff!important;font-weight:400!important;line-height:1.3}
.ims-gf-grid .ims-gf-business{justify-content:flex-start;gap:24px}
.ims-gf-grid .ims-gf-business-image{height:200px;min-height:0;width:100%;flex:none;overflow:hidden;border-radius:20px;background:#22172e}
.ims-gf-grid .ims-gf-business-image img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.ims-gf-grid .ims-gf-business-body{display:flex;flex-direction:column;gap:18px;min-width:0}
.ims-gf-grid .ims-gf-content{padding:0;border:0;color:rgba(255,255,255,.95);font-weight:400!important;line-height:1.5}
.ims-gf-grid .ims-gf-content p{margin:0 0 14px}
.ims-gf-grid .ims-gf-content p:last-child{margin-bottom:0}
.ims-gf-grid strong,.ims-gf-grid b{font-weight:400!important}
.ims-gf-grid .ims-gf-contact{justify-content:flex-start}
.ims-gf-grid .ims-gf-people{display:flex;flex-direction:column;gap:16px;margin:var(--ims-gf-heading-gap, 30px) 0 24px}
.ims-gf-grid .ims-gf-person{display:flex;align-items:center;gap:16px}
.ims-gf-grid .ims-gf-person img{display:block;width:70px;height:70px;flex:none;object-fit:cover;border-radius:50%}
.ims-gf-grid .ims-gf-person-name{font-size:1.15em;font-weight:400}
.ims-gf-grid .ims-gf-person a{color:#af78e1!important;text-decoration:none}
.ims-gf-grid .ims-gf-person a[href^="tel:"]{color:#fff!important}
.ims-gf-grid .ims-gf-contact-text{margin-top:auto;line-height:1.5}
.ims-gf-grid .ims-gf-contact-text p{margin:0 0 10px}
.ims-gf-grid .ims-gf-contact-text p:last-child{margin-bottom:0}
.ims-gf-grid a.ims-gf-business,.ims-gf-grid a.ims-gf-business:hover{color:#fff!important}
@media(hover:hover){.ims-gf-grid .ims-gf-card:hover{transform:translateY(-4px);box-shadow:0 0 0 1px rgba(182,120,255,.18),0 0 34px rgba(140,90,255,.30),inset 0 0 30px rgba(255,255,255,.06)}}
@media(max-width:1024px){.ims-gf-grid .ims-gf-card{min-height:420px}}
@media(max-width:767px){.ims-gf-grid .ims-gf-card{min-height:360px;padding:20px 18px}.ims-gf-grid .ims-gf-business-image{border-radius:16px}}
@media(prefers-reduced-motion:reduce){.ims-gf-grid .ims-gf-card{transition:none}}

/* 1.0.3: Kontaktbeschreibung im verbleibenden Bereich positionieren */
.ims-gf-grid .ims-gf-contact{display:flex;flex-direction:column}
.ims-gf-grid .ims-gf-contact-text{margin-top:0}
.ims-gf-contact-align-top .ims-gf-contact .ims-gf-contact-text{margin-top:0;margin-bottom:auto}
.ims-gf-contact-align-center .ims-gf-contact .ims-gf-contact-text{margin-top:auto;margin-bottom:auto}
.ims-gf-contact-align-bottom .ims-gf-contact .ims-gf-contact-text{margin-top:auto;margin-bottom:0}
.ims-gf-grid .ims-gf-person img{width:100px;height:100px}
.ims-gf-grid .ims-gf-person-name{font-size:22px}
.ims-gf-grid .ims-gf-person-details{font-size:19px;line-height:1.35}
.ims-gf-grid .ims-gf-person-details,.ims-gf-grid .ims-gf-contact-text{font-weight:400!important}

/* 1.0.4: Zweispaltige Kontaktkarte bei aktivierter voller Rasterbreite.
   Elementor steuert display:grid responsiv ueber contact_full_width. */
.ims-gf-grid .ims-gf-contact-left{min-width:0;display:flex;flex-direction:column;align-items:stretch}
.ims-gf-grid .ims-gf-contact-text{min-width:0}
.ims-gf-grid .ims-gf-contact[style*="grid-column"] .ims-gf-contact-text{min-width:0}
/* Bei voller Breite richtet sich der Text innerhalb der rechten Spalte aus. */
.ims-gf-contact-align-top .ims-gf-contact .ims-gf-contact-text{align-self:start}
.ims-gf-contact-align-center .ims-gf-contact .ims-gf-contact-text{align-self:center}
.ims-gf-contact-align-bottom .ims-gf-contact .ims-gf-contact-text{align-self:end}
/* Normale Kontaktkarten behalten die bisherige vertikale Positionierung. */
.ims-gf-grid .ims-gf-contact:not([style*="grid-column"]) .ims-gf-contact-left{flex:0 0 auto}

/* 1.0.7: Elementor generates the responsive full-width grid rules directly.
   No PHP-generated wide classes are required. */
.ims-gf-grid .ims-gf-title{font-size:20px}
.ims-gf-grid .ims-gf-person img{width:100px;height:100px}
.ims-gf-grid .ims-gf-person-name{font-size:22px}
.ims-gf-grid .ims-gf-person-details{font-size:19px}
/* Alignment is relative to the contact row, never the heading row. */
.ims-gf-contact-align-top .ims-gf-grid .ims-gf-contact .ims-gf-contact-text{align-self:start}
.ims-gf-contact-align-center .ims-gf-grid .ims-gf-contact .ims-gf-contact-text{align-self:center}
.ims-gf-contact-align-bottom .ims-gf-grid .ims-gf-contact .ims-gf-contact-text{align-self:end}

/* 1.0.9: Mobile contact layout must override Elementor's responsive
   full-width desktop grid, including inherited tablet rules. */
@media (max-width: 767px) {
  .ims-gf-grid .ims-gf-contact {
    grid-column: 1 / -1;
    display: flex !important;
    flex-direction: column !important;
    grid-template-columns: none !important;
    grid-template-rows: none !important;
    gap: 0 !important;
    min-width: 0;
    width: 100%;
    height: auto !important;
    min-height: 0 !important;
  }
  .ims-gf-grid .ims-gf-contact .ims-gf-contact-left {
    display: flex !important;
    flex-direction: column;
    min-width: 0;
    width: 100%;
  }
  .ims-gf-grid .ims-gf-contact .ims-gf-contact-left > .ims-gf-title {
    grid-column: auto !important;
    grid-row: auto !important;
  }
  .ims-gf-grid .ims-gf-contact .ims-gf-people {
    grid-column: auto !important;
    grid-row: auto !important;
    margin: var(--ims-gf-heading-gap, 30px) 0 24px !important;
    min-width: 0;
  }
  .ims-gf-grid .ims-gf-contact .ims-gf-contact-text {
    grid-column: auto !important;
    grid-row: auto !important;
    width: 100%;
    min-width: 0;
    margin: 0 !important;
    overflow-wrap: anywhere;
  }
  .ims-gf-grid .ims-gf-contact .ims-gf-person {
    min-width: 0;
  }
  .ims-gf-grid .ims-gf-contact .ims-gf-person-details {
    min-width: 0;
    overflow-wrap: anywhere;
  }
}
