.eca-si-list {
  --eca-si-size: 60px;
  --eca-si-gap: 25px;
  --eca-si-expand: 180px;
  --eca-si-speed: 0.5s;
  --eca-si-icon-size: 1.75em;

  display: flex;
  justify-content: center;
  align-items: center;
  list-style: none;
  padding: 0;
  margin: 0;
  flex-wrap: wrap;
  gap: var(--eca-si-gap);
}

.eca-si-item {
  position: relative;
  width: var(--eca-si-size);
  height: var(--eca-si-size);
  background: #fff;
  box-shadow: 0 10px 25px rgba(0,0,0,0.1);
  border-radius: var(--eca-si-size);
  cursor: pointer;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: width var(--eca-si-speed), box-shadow var(--eca-si-speed);
  list-style: none;
  overflow: hidden; /* برای گردی و شبه‌عنصرها */
}

/* لینک کامل */
.eca-si-item a {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  justify-content: center;
  align-items: center;
  text-decoration: none;
  color: inherit;
}

/* شبه‌عنصرهای گرادینت */
.eca-si-item::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: var(--eca-si-size);
  background: linear-gradient(45deg, var(--i), var(--j));
  opacity: 0;
  transition: opacity var(--eca-si-speed);
  z-index: 1;
}
.eca-si-item::after {
  content: "";
  position: absolute;
  top: 10px;
  width: 100%;
  height: 100%;
  border-radius: var(--eca-si-size);
  background: linear-gradient(45deg, var(--i), var(--j));
  transition: opacity var(--eca-si-speed);
  filter: blur(15px);
  z-index: -1;
  opacity: 0;
}

.eca-si-item:hover {
  width: var(--eca-si-expand);
  box-shadow: 0 10px 25px rgba(0,0,0,0);
}
.eca-si-item:hover::before {
  opacity: 1;
}
.eca-si-item:hover::after {
  opacity: 0.5;
}

/* آیکن */
.eca-si-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 3;
  transition: transform var(--eca-si-speed);
  transition-delay: 0.25s;
  /* اندازه خود آیکن‌ها توسط variable کنترل می‌شود */
}
.eca-si-icon i,
.eca-si-icon svg {
  font-size: var(--eca-si-icon-size);
  width: var(--eca-si-icon-size);
  height: auto;
  color: #777;
  fill: #777;
  transition: color 0s, fill 0s; /* فوری */
}
.eca-si-item:hover .eca-si-icon {
  transform: scale(0);
  transition-delay: 0s;
}
.eca-si-item:hover .eca-si-icon i,
.eca-si-item:hover .eca-si-icon svg {
  color: #fff;
  fill: #fff;
}

/* عنوان */
.eca-si-title {
  position: absolute;
  color: #fff;
  font-size: 1.1em;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  transform: scale(0);
  transition: transform var(--eca-si-speed);
  transition-delay: 0s;
  white-space: nowrap;
  z-index: 3;
}
.eca-si-item:hover .eca-si-title {
  transform: scale(1);
  transition-delay: 0.25s;
}

/* ========== حالت لمسی (فعال) ========== */
.eca-si-item.eca-si-hover {
  width: var(--eca-si-expand);
  box-shadow: 0 10px 25px rgba(0,0,0,0);
}
.eca-si-item.eca-si-hover::before {
  opacity: 1;
}
.eca-si-item.eca-si-hover::after {
  opacity: 0.5;
}
.eca-si-item.eca-si-hover .eca-si-icon {
  transform: scale(0);
  transition-delay: 0s;
}
.eca-si-item.eca-si-hover .eca-si-icon i,
.eca-si-item.eca-si-hover .eca-si-icon svg {
  color: #fff;
  fill: #fff;
}
.eca-si-item.eca-si-hover .eca-si-title {
  transform: scale(1);
  transition-delay: 0.25s;
}