.nekm-module{
  --nekm-border-color:#111111;
  --nekm-border-width:2px;
  --nekm-border-radius:14px;
  --nekm-text-color:#ffffff;
  --nekm-overlay:rgba(0,0,0,0.35);
  --nekm-gap:16px;
  --nekm-columns-desktop:4;
  --nekm-columns-mobile:1;
  --nekm-tile-height:220px;
  display:block;
  width:100%;
  margin-left:auto;
  margin-right:auto;
}



.nekm-module,
.nekm-module .nekm-grid,
.nekm-module .nekm-tile-link{
  border:0 !important;
  outline:0 !important;
  box-shadow:none !important;
  background:transparent !important;
}

/* Themes setzen Links gern mit underline/border-bottom/background-image -> erzeugt "Strich" */
.nekm-module .nekm-tile-link{
  border-bottom:0 !important;
  background-image:none !important;
  text-decoration:none !important;
}
.nekm-module .nekm-tile-link::before,
.nekm-module .nekm-tile-link::after{
  content:none !important;
  display:none !important;
}

/* Theme-Pseudo-Elemente (z.B. Linien via :after) neutralisieren */
.nekm-module::before,
.nekm-module::after,
.nekm-module .nekm-grid::before,
.nekm-module .nekm-grid::after{
  content:none !important;
  display:none !important;
}

.nekm-module:focus,
.nekm-module:focus-within{
  outline:0 !important;
  box-shadow:none !important;
}

.nekm-module .nekm-grid{
  display:grid;
  gap:var(--nekm-gap);
  width:100%;
  justify-content:center;
  justify-items:stretch;
}

.nekm-module[data-nekm-layout-desktop="grid"] .nekm-grid{
  grid-template-columns: var(--nekm-grid-template-desktop, repeat(4, minmax(0, 1fr)));
}

.nekm-module[data-nekm-layout-desktop="stack"] .nekm-grid{
  grid-template-columns: 1fr;
}

.nekm-module .nekm-tile-link{
  width:100%;
}

@media (max-width: 768px){
  .nekm-module[data-nekm-layout-mobile="grid"] .nekm-grid{
    grid-template-columns: var(--nekm-grid-template-mobile, repeat(1, minmax(0, 1fr)));
  }

  .nekm-module[data-nekm-layout-mobile="stack"] .nekm-grid{
    grid-template-columns: 1fr;
  }
}

.nekm-module .nekm-tile-link{
  display:block;
  text-decoration:none;
}

.nekm-module .custom-tile{
  position:relative;
  width:100%;
  height:var(--nekm-tile-height);
  border: var(--nekm-border-width) solid var(--nekm-border-color);
  border-radius: var(--nekm-border-radius);
  /* Verhindert "weißen Extra-Rahmen" durch Theme-Defaults (z. B. background/box-shadow) */
  background: transparent;
  box-shadow: none;
  outline: none;
  overflow:hidden;
  transform: translateZ(0);
}

.nekm-module .hover-animation{
  position:absolute;
  inset:0;
  transition: opacity 220ms ease;
}

.nekm-module .custom-inner-tile-background{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
}

.nekm-module .custom-inner-tile-background::before{
  content:"";
  position:absolute;
  inset:0;
  background: var(--nekm-overlay);
  opacity:1;
  transition: opacity 220ms ease;
}

.nekm-module .custom-inner-tile-content{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:16px;
  text-align:center;
  color: var(--nekm-text-color);
  font-weight:700;
  font-size: 22px;
  line-height:1.15;
  z-index:2;
  opacity:1;
  transition: opacity 220ms ease;
}

.nekm-module .icon-wrapper{
  --nekm-icon-size:90px;
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  transition: opacity 220ms ease, transform 280ms ease, filter 280ms ease;
  z-index:3;
  opacity:0;
  pointer-events:none;
  transform: none;
  filter:none;
}

/* Hover-Icon Effekte (Initialzustand) */
.nekm-module .icon-wrapper.nekm-icon-effect-none{ transform:none; }
.nekm-module .icon-wrapper.nekm-icon-effect-fade{ transform:none; }
.nekm-module .icon-wrapper.nekm-icon-effect-zoom{ transform:scale(0.70); }
.nekm-module .icon-wrapper.nekm-icon-effect-zoom_fade{ transform:scale(0.70); }
.nekm-module .icon-wrapper.nekm-icon-effect-slide_up{ transform:translateY(18px); }
.nekm-module .icon-wrapper.nekm-icon-effect-slide_down{ transform:translateY(-18px); }
.nekm-module .icon-wrapper.nekm-icon-effect-slide_left{ transform:translateX(18px); }
.nekm-module .icon-wrapper.nekm-icon-effect-slide_right{ transform:translateX(-18px); }
.nekm-module .icon-wrapper.nekm-icon-effect-rotate{ transform:rotate(-12deg) scale(0.85); }
.nekm-module .icon-wrapper.nekm-icon-effect-blur{ filter:blur(10px); }

.nekm-module .icon-wrapper svg,
.nekm-module .icon-wrapper .nekm-hover-icon-img{
  width:var(--nekm-icon-size);
  height:var(--nekm-icon-size);
}

.nekm-module .icon-wrapper .nekm-hover-icon-img{
  object-fit: contain;
  display:block;
}

/* Hover-Trigger: bewusst auf Link-Ebene (Theme/Builder-Sicherheit) */
.nekm-module[data-nekm-hover-fade="1"] .nekm-tile-link:hover .custom-inner-tile-background::before{
  opacity:0;
}

.nekm-module[data-nekm-hover-fade="1"] .nekm-tile-link:hover .custom-inner-tile-content{
  opacity:0;
}

.nekm-module[data-nekm-hover-fade="1"] .nekm-tile-link:hover .icon-wrapper{
  opacity:1;
}

/* Effekt-Finalzustand pro Typ (damit Dropdown sichtbar unterschiedliche Animationen liefert) */
.nekm-module[data-nekm-hover-fade="1"] .nekm-tile-link:hover .icon-wrapper.nekm-icon-effect-none{ transform:none; filter:none; }
.nekm-module[data-nekm-hover-fade="1"] .nekm-tile-link:hover .icon-wrapper.nekm-icon-effect-fade{ transform:none; filter:none; }
.nekm-module[data-nekm-hover-fade="1"] .nekm-tile-link:hover .icon-wrapper.nekm-icon-effect-zoom{ transform:scale(1); filter:none; }
.nekm-module[data-nekm-hover-fade="1"] .nekm-tile-link:hover .icon-wrapper.nekm-icon-effect-zoom_fade{ transform:scale(1); filter:none; }
.nekm-module[data-nekm-hover-fade="1"] .nekm-tile-link:hover .icon-wrapper.nekm-icon-effect-slide_up{ transform:translateY(0); filter:none; }
.nekm-module[data-nekm-hover-fade="1"] .nekm-tile-link:hover .icon-wrapper.nekm-icon-effect-slide_down{ transform:translateY(0); filter:none; }
.nekm-module[data-nekm-hover-fade="1"] .nekm-tile-link:hover .icon-wrapper.nekm-icon-effect-slide_left{ transform:translateX(0); filter:none; }
.nekm-module[data-nekm-hover-fade="1"] .nekm-tile-link:hover .icon-wrapper.nekm-icon-effect-slide_right{ transform:translateX(0); filter:none; }
.nekm-module[data-nekm-hover-fade="1"] .nekm-tile-link:hover .icon-wrapper.nekm-icon-effect-rotate{ transform:rotate(0) scale(1); filter:none; }
.nekm-module[data-nekm-hover-fade="1"] .nekm-tile-link:hover .icon-wrapper.nekm-icon-effect-blur{ transform:scale(1); filter:blur(0); }


/* Hover-Bewegung/Zoom (nur Maus-Geräte) */
@media (hover:hover) and (pointer:fine){
  .nekm-module[data-nekm-hover-motion="1"] .custom-tile.nekm-motion{
    transition: transform 260ms ease, box-shadow 260ms ease;
    will-change: transform;
  }
  .nekm-module[data-nekm-hover-motion="1"] .custom-tile.nekm-motion .custom-inner-tile-background{
    transition: transform 420ms ease;
    will-change: transform;
  }
  .nekm-module[data-nekm-hover-motion="1"] .custom-tile.nekm-motion .custom-inner-tile-content{
    transition: transform 260ms ease, opacity 260ms ease;
  }

  /* Hover-Trigger auf Link-Ebene (damit Motion immer greift) */
  .nekm-module[data-nekm-hover-motion="1"] .nekm-tile-link:hover .custom-tile.nekm-motion{
    transform: translateY(-6px) scale(1.01);
    box-shadow: 0 18px 40px rgba(0,0,0,0.25);
  }
  .nekm-module[data-nekm-hover-motion="1"] .nekm-tile-link:hover .custom-tile.nekm-motion .custom-inner-tile-background{
    transform: scale(1.08);
  }
  .nekm-module[data-nekm-hover-motion="1"] .nekm-tile-link:hover .custom-tile.nekm-motion .custom-inner-tile-content{
    transform: translateY(-10px);
  }
}
/* Accessibility: reduce motion */
@media (prefers-reduced-motion: reduce){
  .nekm-module .hover-animation,
  .nekm-module .icon-wrapper,
  .nekm-module .custom-tile,
  .nekm-module .custom-inner-tile-background,
  .nekm-module .custom-inner-tile-content{
    transition:none !important;
    transform:none !important;
  }
}
